Exception ها در سی شارپ

در این بخش از آموزش، کلاس های خطا و استثنای داخلی در زبان برنامه نویسی سی شارپ توضیح داده می شود.

Exception ها در سی شارپ

کلاس های Exception در سی شارپ

در این بخش کلاس های خطا و استثنای داخلی در زبان برنامه نویسی سی شارپ توضیح داده می شود.

هر برنامه ای در زبان سی شارپ ممکن است در زمان اجرا دچار خطا شود. در این حالت یک Exception توسط سی شارپ ایجاد می شود که نشان دهنده ی خطای مورد نظر و اطلاعاتی در مورد آن است.

Exception

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

1- Exception هایی که توسط برنامه اجرایی تولید می شود.

2- Exception هایی که توسط CLR تولید می شوند.

سی شارپ برای هر Exception احتمالی دارای کلاس های درونی است همه کلاس های مربوط به خطا از کلاس Exception مشتق شده اند.

دو نوع کلاس اصلی برای استثناها (exception) وجود دارد : SystemException و ApplicationException

کلاس SystemException به عنوان کلاس پایه برای Exceptionهایی است که توسط CLR تولید می شود و ApplicationException به عنوان کلاس پایه برای استثناهای مرتبط با برنامه اجرایی استفاده می شود.

C#.NET شامل کلاس های استثنای داخلی برای هر خطای احتمالی است. کلاس Exception کلاس پایه همه کلاس های استثنا است.

نمودار سلسله مراتبی کلاس های استثنا در دات نت به شرح زیر است:

نمودار سلسله مراتبی کلاس های استثنا در دات نت

در شکل بالا، کلاس Exception ، کلاس پایه کلاس های SystemException و ApplicationException است. کلاس SystemException کلاس پایه برای تمام کلاس های استثنای داخلی در NET Framework. است.

ApplicationException به عنوان کلاس پایه برای همه کلاس های استثنای سفارشی توصیه می شود (اگر نمی توان از کلاس های استثنای سیستم استفاده کرد و برای نقض قوانین تجاری یا سایر خطاهای مربوط به برنامه به کلاس استثنای جدید نیاز دارید، کلاس استثنای سفارشی باید ایجاد شود). این به معنای تمایز بین استثناهای تعریف شده توسط برنامه ها در مقابل استثناهای تعریف شده توسط سیستم بود. با این حال، مایکروسافت اکنون توصیه می کند که کلاس های استثنای سفارشی را به جای کلاس ApplicationException از کلاس Exception استخراج کنید.

شکل زیر نشان می دهد که چگونه NullReferenceException در حالت اشکال زدایی ویژوال استودیو هنگام دسترسی به یک property شی تهی در زمان اجرا ایجاد می شود.

کلاس های استثنایی داخلی در زبان برنامه نویسی سی شارپ

کلاس های استثنایی داخلی

فهرست کلاس های استثنای داخلی مهم در NET. در زیر نشان داده شده است.

1- ArgumentException

هنگامی که یک آرگومان غیر تهی (non-null) که به یک متد ارسال می شود، نامعتبر است، ایجاد می شود.

2- ArgumentNullException

هنگامی که آرگومان تهی به یک متد ارسال می شود، ایجاد می شود.

3- ArgumentOutOfRangeException

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

4- DivideByZeroException

هنگامی که یک مقدار صحیح بر صفر تقسیم می شود ایجاد می شود.

5- FileNotFoundException

هنگامی که یک فایل فیزیکی در مکان مشخص شده وجود ندارد، ایجاد می شود.

6- FormatException

زمانی که یک مقدار در فرمت مناسبی برای تبدیل از یک رشته با استفاده از یک متد تبدیل (conversion method) مانند Parse نیست، ایجاد می شود.

7- IndexOutOfRangeException

هنگامی که اندیس آرایه خارج از حد پایین یا بالای یک آرایه یا مجموعه باشد، ایجاد می شود.

8- InvalidOperationException

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

9- KeyNotFoundException

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

10- NotSupportedException

هنگامی که یک method یا operation پشتیبانی نمی شود، ایجاد می شود.

11- NullReferenceException

هنگامی که برنامه به اعضای شی تهی دسترسی دارد ایجاد می شود.

12- OverflowException

هنگامی که یک عملیات حسابی، casting یا تبدیل منجر به overflow می شود، ایجاد می شود.

13- OutOfMemoryException

زمانی که برنامه حافظه کافی برای اجرای کد دریافت نمی کند ایجاد می شود.

14- StackOverflowException

هنگامی که پشته ای در حافظه سرریز می شود، ایجاد می شود.

15- TimeoutException

time interval اختصاص داده شده به یک عملیات به پایان رسیده است.

وقتی خطایی رخ می دهد، کد برنامه یا کنترل کننده پیش فرض این استثنا را کنترل می کند. در بخش بعدی نحوه کنترل استثنا و خطا آموزش داده می شود.

کلاس های Exception ApplicationException SystemException آموزش سی شارپ

مقالات این دسته بندی