در این مطلب می خوایم بحث Error Handeling را توضیح بدهیم امیدوارم به برنامه نویسیتون کمک کند.
وقتی که می خواهیم برنامه ایی را توسعه بدهیم دو نوع خطا در برنامه امکان داره اتفاق بیفته .
خطاهای در زمان کامپایل:
همانطور که در عکس مشاهده می فرمایید این نوع خطاها بیشتر به دلیل اشتباهات دستوری و Syntax اتفاق می افتد که خطاهای زمان کامپایل نامیده می شود. این نوع خطاها جدی گرقته نمی شود به این خاطر که تاثیری در برنامه های شما ندارد.
خطاهای در زمان اجرا:
دلایل زیادی در رخ دادن این نوع خطاها وجود دارد پیاده سازی اشتباه به صورت منطقی ، داده های غیر منتظره و نبود منابع لازم و … این نوع خطاها باید جدی گرفته شوند چون به طور مستقیم در برنامه تاثیر دارند و موجب بستن برنامه می شود.
کلاس Exception :
مسئول پایان غیر عادی برنامه می باشد وقتی که خطایی در حین اجرا اتفاق رخ می دهد. آبجکتی از این کلاس مسئول خاتمه غیر عادی برنامه می باشد و پیغام خطایی در مکانی که دلیل خاتمه برنامه است ، نشان می دهد .
انواع Exception : دو نوع Exception داریم:
- System Exception
این نوع خطاها از پیش تعریف شده است یعنی توسط دات نت شناخته شده است و خود vs آن را تشخیص داده و در هنگام خطا نوعش رو مشخص می کند. مانند :
DivideByZeroException
FormatException
OverFlowException
NullReference Exception
- 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();
حالا به برنامه ورودی می دهیم مثلا
- x=5 , y= 0
خروجی :
DivideByZeroException is occured The block finally is run ...
- x= 5 y= softsaaz
خروجی :
FormatException is occured The block finally is run ...
- x=10 y= 20000000000000000000000
خروجی :
error message. www.softsaaz.ir The block finally is run ...
امتیاز دهی به این مطلب :
امتیاز
جمع امتیازات
لطفا به این مطلب امتیاز بدهید