1.bugs : ای خطا معمولاً از خطا های برنامه نویس است
2.user error: این خطا خطایه که از طرف کار بر ایجاد مثل مقدار نا مناسب دادن به یک فیلد
3.Exception: خطای غیر عادی که کنترل آن توسط برنامه نویس دشواره و نمی تونه به راحتی اون رو تشخصی بده
برای این که از شر این خطاها راحت بشیم باید اون قسمتی رو که احساس می کنیم خطا رخ میده رو مشخص کنیم با try بعد تو قسمت catch پیغامی رو که می خوایم که همون نوع خطا هست رو نشون بده می نویسیم و در آخر هم از finally استفاده می کنیم که چه در صورتی که خطا رخ بده و چه در صورتی که خطا رخ نده پیغامی رو نشون بده!
اما گاهی اطلاع داریم که چه اتفاقی ممکنه بیفته و برای این که پیغام خطا رو نشون بدیم یک شی از جنس اون خطا صدا می کنیم که وقتی که اون خطا رخ داد پیغام مربوط به اون نمایش داده بشه!
حالا یه چندتا مثالا نیگا کنیم!
class Program
{
public static void Main()
{
int[] myarray = new int[5];
try
{
for (int ctr = 0; ctr < 10; ctr++)
{
myarray[ctr] = ctr;
}
}
catch(Exception e)
{
Console.WriteLine(e);
}
Console.WriteLine("at end of class");
Console.ReadLine();
}
تو این مثال از قصد کاری کردیم که خطا ایجاد بشه طول رشته از طول حلقه for کمتره پس خطا داره!{
public static void Main()
{
int[] myarray = new int[5];
try
{
for (int ctr = 0; ctr < 10; ctr++)
{
myarray[ctr] = ctr;
}
}
catch(Exception e)
{
Console.WriteLine(e);
}
Console.WriteLine("at end of class");
Console.ReadLine();
}
و یک مثال هم با finally
public static void Main()
{
int[] myarray = new int[5];
try
{
for (int ctr = 0; ctr < 10; ctr++)
//or for (int ctr = 0; ctr < 4; ctr++)
{
myarray[ctr] = ctr;
}
}
catch (Exeption e)
{
Console.WriteLine(e);
Console.WriteLine(" exception caught");
}
finally
{
Console.WriteLine("done with exception handling");
}
Console.WriteLine("end of program");
Console.ReadLine();
}
امیدوارم که به درد بخور بوده باشه و از نظر من مهمترین فایده ای که داره اینه که بعد از وقوع خطا برنامه همچنان اجرا میشه و این واقعاً عالیه!موفق و پیروز باشید!
Blogged with the Flock Browser