بعضی وقتا از یسری کدھا استفاده میکنیم که احتمال اجرا نشدنشون وجود داره
یعنی شرایطی پیش میاد که اون تکه کدمون مجبورا نمیتونه اجرا بشه و به ھمین خاطر ھم اخطار میده و کل برنامه ھنگ میکنه
یه مثال ساده میزنم :
برای مثال برنامه ای نوشتیم که وظیفه داره وقتی اجراش کردیم یک سایت رو بررسی کنه و تمام پست ھا رو تویه قالب خاصی بھمون نمایش بده
بعد از نمایش مطالب یسری اعمال دیگه مثل شخصی سازی پیام هارو برامون انجام بده
حالا فرض کنید این برنامه رو اجرا کردیم و اینبار اینترنتمون قطعه ، در این صورت اگه برنامه نویس تازه کاری بوده باشید برنامه ھنگ میکنه و مجبور میشید به سختی کل برنامه رو غیر فعالش کنید
خوب حالا راهکار چیه؟
بھترین روش برای جلو گیری از این خطا ھا اینه که از :
Try {} catch {}
استفاده کنیم
در کل به این شکله که قبل از کدھای اصلیمون Try رو قرار میدیم و بعد از اتمام شدن کدھا catch رو اضافه میکنیم و یک سری دستورات دیگه میدیم
با این کارھا دستور داده ایم که :
ابتدا دستوراتی که در Try وجود داره رو اجرا کن اگه دستورات مشکلی داشتن بیخیال شو و برو به دستوراتی که در قسمت catch نوشته شدن برس :)
به مثال زیر دقت کنید:
private void button1_Click(object sender, EventArgs e)
{
char charData;
if (textBox1.Text != string.Empty)
{
charData = (char) Convert.ToInt32 (textBox1.Text);
textBox2.Text = ((char)charData).ToString();
}
}
کد بالا کدھای اسکی رو به کلمات تبدیل میکنه
اگه بجای کدھای اسکی ، کلمه ای وارد کنیم برنامه ھنگ میکنه و ما مجبور میشیم برنامه رو ببندیم
ولی اگه کد رو به شکل زیر بنویسیم
private void button1_Click(object sender, EventArgs e)
{
char charData;
if (textBox1.Text != string.Empty)
try
{
charData = (char) Convert.ToInt32 (textBox1.Text);
textBox2.Text = ((char)charData).ToString();
}
catch
{
string St = textBox1.Text;
string Str = string.Empty;
foreach (char C in St)
{
Str = Str + " " + (Convert.ToInt32(C)).ToString();
}
textBox2.Text = Str;
}
}
تکه کد اصلی در صورت اخطار به کدھای قسمت دوم میاد که این کد ھم کارش تبدیل کردن کلمات به کد اسکیه
ما میتونیم بعد از catch ھر کد دیگه ای استفاده کنیم مثلا میتونیم کدی قرای بدیم که در صورت اخطار برنامه رو خود به خود ببنده
private void button1_Click(object sender, EventArgs e)
{
char charData;
if (textBox1.Text != string.Empty)
try
{
charData = (char) Convert.ToInt32 (textBox1.Text);
textBox2.Text = ((char)charData).ToString();
}
catch
{
MessageBox.Show ("برنامه دچار مشکل شده است");
this.Close();
}
}
برنامه دچار مشکل شده است رو نمایش میده و خود به خود بسته میشه
در کل ما مشکلات احتمالی که ممکنه در طی اجرای برنامه پیش بیاد رو پیش بینی میکنیم و به برنامه میگیم که در صورت بروز مشکل چه کاری انجام بده
از این کد میشه خیلی جاها استفاده کرد!!!
به سلامتی دوست عزیزم ب.م.آ
Bazed :D