در فصل قبل دیدیم که چطور میشود خطاهایی که در زمان اجرا رخ میدهند را مدیریت کرد. تاکنون استثناها به صورت خودکار رخ میدادند. اما میتوان با استفاده از کلمه کلیدی throw باعث شد یک استثنا در جایی از برنامه رخ دهد. در این فصل با کلمه ی کلید throw آشنا خواهیم شد.
در قسمت قبل دیدیم که چطور میتوان استثناهایی که توسط CLR به صورت خودکار رخ می دهد را مدیریت کرد. در این قسمت خواهیم دید که چطور به صورت دستی باعث رخداد یک استثنا شویم. یک استثنا میتواند به صورت دستی با استفاده از کلمه کلیدی throw
رخ دهد. هر نوع استثنا که از کلاس Exception
مشتق شده باشد می تواند بصورت دستی توسط کلمه کلیدی throw رخ دهد :
static void Main(string[] args)
{
Student std = null;
try
{
PrintStudentName(std);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message );
}
Console.ReadKey();
}
private static void PrintStudentName( Student std)
{
if (std == null)
throw new NullReferenceException("Student object is null.");
Console.WriteLine(std.StudentName);
}
خروجی نمونه مثال بالا به شکل زیر است :
Student object is null.
در نمونه مثال بالا اگر شیء Student
برابر با null باشد، متد ()PrintStudentName
باعث رخداد استثنای NullReferenceException میشود. دقت داشته باشید که throw با استفاده از کلمه کلیدی new شی ایی از استثنا را میسازد. کلمه throw نمی تواند با نوع دیگری که از کلاس Exception مشتق نشده باشد به کار برده شود.