برنامه نویسیمقالات

کلاس Exception و انواع آن – دستور try catch

نمونه برنامه سی شارپ

در این مطلب می خوایم بحث Error Handeling را توضیح بدهیم امیدوارم به برنامه نویسیتون کمک کند.

وقتی که می خواهیم برنامه ایی را توسعه بدهیم دو نوع خطا در برنامه امکان داره اتفاق بیفته .

خطاهای در زمان کامپایل:

نمونه برنامه سی شارپ

همانطور که در عکس مشاهده می فرمایید این نوع خطاها بیشتر به دلیل اشتباهات دستوری و Syntax اتفاق می افتد که خطاهای زمان کامپایل نامیده می شود. این نوع خطاها جدی گرقته نمی شود به این خاطر که تاثیری در برنامه های شما ندارد.

خطاهای در زمان اجرا:

نمونه برنامه سی شارپ

دلایل زیادی در رخ دادن این نوع خطاها وجود دارد پیاده سازی اشتباه به صورت منطقی ، داده های غیر منتظره و نبود منابع لازم و … این نوع خطاها باید جدی گرفته شوند چون به طور مستقیم در برنامه تاثیر دارند و موجب بستن برنامه می شود.


کلاس Exception :
مسئول پایان غیر عادی برنامه می باشد وقتی که خطایی در حین اجرا اتفاق رخ می دهد. آبجکتی از این کلاس مسئول خاتمه غیر عادی برنامه می باشد و پیغام خطایی در مکانی که دلیل خاتمه برنامه است ، نشان می دهد .
انواع Exception : دو نوع Exception داریم:

  1. System Exception

این نوع خطاها از پیش تعریف شده است یعنی توسط دات نت شناخته شده است و خود vs آن را تشخیص داده و در هنگام خطا نوعش رو مشخص می کند. مانند :

DivideByZeroException

هنگامی که بخواهیم عددی را بر صفر تقسیم کنیم

FormatException

در هنگام تبدیل نوع های سی شارپ به یکدیگر . مثلا مقدار رشته ایی را به عدد تبدیل ماییم.

OverFlowException

وقتی که سرریز اتفاق بیفتد مثلا نوع byte عدد 260 را درونش بریزید.

NullReference Exception

مثلا متغییری که داخلش null باشد و بخواهیم در شرط ازش استفاده کنیم.

اگر موافق باشین هر کدام از این خطاها رو در مطالب جداگونه با مثال تشریح کنم. اگه موافق هستین، مطلب رو لایک کنین.
  1. Application Exception

این نوع ها به صراحت توسط برنامه نویس با یه شرط خاص ایجاد می شود .

  • مثالی از این نوع میتوان اشاره ایی به “User Defind Exception” کرد.

مدیریت کردن Exception ها :
وقتی که برنامه شما در اثر رخ دادن Exception متوقف شود کدهای باقی مانده در برنامه نمی توانند اجرا شوند.

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

برای این کار و جلوگیری از خطاهای زمان اجرا از دستور try catch استفاده می کنیم.

شکل کلی (syntax) دستور :

Try
{
    // دستوراتی که باعث خطا می شوند.
}
    Catch( <Exception> <var>)
{
    // دستوراتی که بعد از بروز خطا باید اجرا شوند.
}

  • قسمت هایی را که احتمال می دهیم که خطایی رخ بده را در بلوک try می نویسیم .
  • روند مدیریت کردن خطاهای try در بلوک های catch صورت می گیرد.
  • یه بلوک دیگه ایی وجود دارد که آن Finally می باشد . چه خطا رخ بده چه رخ ندهد این بلوک اجرا می شود.

مثالی از مدیریت کردن خطاها و Exception :

 try
            {

                Console.WriteLine("please enter first number : ");
                int x= int.Parse(Console.ReadLine());
                Console.WriteLine("please enter second number : ");
                int y= int.Parse(Console.ReadLine());
                int resualt=x / y;
            }
            catch (DivideByZeroException ex1)
            {
                Console.WriteLine("DivideByZeroException is occured");
            }
            catch (FormatException ex2)
            {
                Console.WriteLine("FormatException is occured");
            }
            catch (Exception ex)
            {
                Console.WriteLine("error message. www.softsaaz.ir");
            }
            finally
            {
                Console.WriteLine("The block finally is run ...");
            }
            Console.ReadLine();

حالا به برنامه ورودی می دهیم مثلا

  1. x=5 , y= 0

خروجی :

DivideByZeroException is occured
The block finally is run ...
  1. x= 5 y= softsaaz

خروجی :

FormatException is occured
The block finally is run ...
  1. x=10 y= 20000000000000000000000

خروجی :

error message. www.softsaaz.ir
The block finally is run ...

دانلود سورس برنامه


تمامی مطالب توسط تیم سافت ساز ترجمه و جمع آوری می شود . منبع سافت ساز

امتیاز دهی به این مطلب :

امتیاز

جمع امتیازات

لطفا به این مطلب امتیاز بدهید

User Rating: 3.18 ( 5 votes)

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا