"> Handling Exception در ASP.NET Core | آموزش NET Core. | ام اس پی سافت

Handling Exception در ASP.NET Core

Handling Exception

در این مقاله، ما به دنبال Handling Exception های مختلف و نحوه­ ی مدیریت آن­ها به منظور دستیابی به حداکثر بهره گیری از یک بلوک try catch می پردازیم.

Exception چیست؟

یک Exception زمانی رخ داده و ارسال می شود که کد شما به وضعیتی می رسد که در زمان اجرا برنامه ریزی نشده است.

اصولا ممکن است به دلیل ورودی غیرمنتظره، یا کد با کیفیت بد رخ دهد.

مزایای مدیریت Exceptions

برای جلوگیری از این که برنامه تان از کار بیافتد،یکی از چندین مزایای مختلف استفاده از Exceptions است.

Handling Exception

برخی دیگر از مزایای آن بصورت زیر می باشد:

  • ارائه ی پیغام های جزئی تر در رابطه با اتفاق رخ داده به کاربر نهایی؛
  •  بهبود امنیت سیستم خود، عدم نمایش هر گونه داده های حساس به کاربران نهایی خود؛
  •  اجتناب از خرابی و از کار افتادگی، و جلوگیری از مأیوس شدن مشتریان خود؛
  •  گزارش گیری از جزئیات عاملی که موجب بروز استثناء شده.

چرا exception ها را مدیریت کنیم؟

جلوگیری از ارسال شدن exception ها به کاربران نهایی خود، یک تمرین خوب برای توسعه ی نرم افزار است، اما دلایل بیشتری برای این کار وجود دارد.

  •  ایجاد مدیریت کننده های برنامه ریزی شده ی exception، بر اساس نوع exception؛
  • دارا بودن جریان های متفاوت فرآیندی، حفظ یکپارچگی داده ها؛
  • گزارش گیری دقیق تر؛
  • حفاظت از کد، جلوگیری از آشکار شدن داده های حساس.

سلسله مراتب exception ها

کامپایلر سراغ اولین مدیریت کننده ی خطایی که exception ارسال شده را ارضاء کند می رود، لذا باید به سلسله مراتب Exception و ترتیب مدیریت کننده های خطا توجه داشته باشیم.

در غیر اینصورت، ممکن است نتیجه ای متفاوت از آنچه انتظار می رود دریافت کنیم.

از آنجایی که همه ی exception ها از System.Exception مستق می شوند، مدیریت کننده ی خطای پیش فرض باید آخرین مورد باشد تا تنها در صورتیکه هیچ یک از مدیریت کننده های خطا شرایط را ارضاء نکردند، به آن مراجعه شود.

نمونه هایی از exception ها

برای نمونه های زیر، از یک .NET Core Console Application استفاده خواهیم کرد.

Custom Exception

Creating the custom exception

این یک مدیریت کننده ی خطای سفارشی بسیار ابتدایی می باشد.

می توانید تا جاییکه می خواهید آن را بهبود دهید. توجه کنید که باید از Exception ارث ببرد.

public class CustomException : Exception    
{    
    public CustomException(): base("This is a custom exception")    
    {  
    }    
}  

مدیریت کننده ی exception

public static void CustomException() {  
 try {  
  throw new CustomException();  
 } catch (CustomException ex) //must comes first    
 {  
  Console.WriteLine(ex.Message);  
 } catch (Exception ex) {  
  Console.WriteLine(ex.Message);  
 }  
}  

به ترتیب exception ها توجه کنید، اگر ترتیب آن ها را تغییر دهید، ترتیبی که به اولین exception مراجعه می شود نیز تغییر خواهد کرد.

ArithmeticException

int division = 0;  
  
try {  
 var throwException = 15 / division;  
} catch (ArithmeticException ex) //must comes first    
{  
  
 Console.WriteLine(ex.Message);  
} catch (Exception ex) {  
  
 Console.WriteLine(ex.Message);  
}  

نکته ی فوق بر روی تمام مدیریت کننده های ذکر شده ی زیر نیز اعمال می شود.

NullReferenceException

List < int > nullIntegerList = null;  
try {  
 var throwException = nullIntegerList.Count;  
} catch (NullReferenceException ex) //must comes first    
{  
 Console.WriteLine(ex.Message);  
} catch (Exception ex) {  
 Console.WriteLine(ex.Message);  
}  

IndexOutOfRangeException

int[] sampleArray = new int[3] {  
 ۱,  
 ۲,  
 ۳  
};  
try {  
 var throwException = sampleArray[3];  
} catch (IndexOutOfRangeException ex) //must comes first    
{  
 Console.WriteLine(ex.Message);  
} catch (Exception ex) {  
 Console.WriteLine(ex.Message);  
}  

FileNotFoundException

try {  
 var throwException = File.Open(@ "C:\notExistentFile.jpg", FileMode.Open);  
} catch (FileNotFoundException ex) //must comes first    
{  
 Console.WriteLine(ex.Message);  
} catch (Exception ex) {  
 Console.WriteLine(ex.Message);  
}  

در این مقاله ما راجب Handling Exception در ASP.NET Core صحبت کردیم.

تبریک می گویم. روشی بسیار مهم جهت حفاظت از کد خود و نیز گزارش گیری دقیق تر از طریق مدیریت خطاها با استفاده از نوع آن ها را مشاهده کردید.

  • پسورد: www.mspsoft.com
زهره سلطانیان

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

کدیشن ! مارکت پروژه های برنامه نویسی راه اندازی شدیه توکه پا بریم ببینم