مدیریت خطا/Exception Handling در Java

مدیریت خطا /Exception Handling در Java

 

مدیریت خطا/Exception Handling یکی از مکانیزم های کارا جهت مدیریت خطاهای زمان اجرا است تا جریان اجرای برنامه قطع نشده و روند عادی برنامه دچار اخلال نشود.

به مکانیزیمی که خطاهای رخ داده در زمان اجرای برنامه نظیر ClassNotFound، IO، SQL، Remote و غیره … را مدیریت می کند.

مزایای استفاده از Exception Handling

 

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

statement 1;

statement 2;

statement 3;

statement 4;

statement 5;//exception occurs

statement 6;

statement 7;

statement 8;

statement 9;

statement 10;

فرض کنید برنامه ی شما از ۱۰ دستور تشکیل شده که در دستور پنجم آن یک خطا رخ می دهد. در این صورت روند اجرای برنامه متوقف شده و باقی دستورات (۶ تا (۱۰ دیگر اجرا نخواهند شد. حال اگر با بهره گیری از exception handling خطای رخ داده را مدیریت نمایید، دیگر روند اجرای سایر دستورات مختل نمی شود. بنا به دلایل ذکر شده برنامه نویس از exception handling بهره می گیرد.

سلسله مراتب و نمودار درختی کلاس های Exception Java

 

انواع Exception ها

در کل دو نوع Exception وجود دارد: (خطاهای زمان کامپایل) checked و (خطاهای زمان اجرا) unchecked. شرکت sun microsystem خطاها را به سه بخش تقسیم می کند:

  1. Checked Exception
  2. Unchecked Exception
  3. Error

شرح تفاوت بین خطاهای checked و unchecked

checked exception

 

تمامی کلاس هایی که از کلاس Throwable ارث بری می کنند به استثنای RuntimeException و Error ، تحت عنوان checked exception شناخته می شوند. از جمله ی این خطاها می توان به IOException، SQLException اشاره کرد. checked exception ها در زمان کامپایل برنامه چک می شوند.

 

unchecked exception

 

کلاس هایی که از RuntimeException ارث بری دارند تحت عنوان unchecked exception خوانده می شوند، برای مثال می توان به ArithmeticException، NullPointerException، ArrayIndexOutOfBoundsException و غیره … اشاره کرد. unchecked exception ها در زمان اجرای برنامه چک می شوند.

 

Error

 

Error غیر قابل مدیریت بوده و در صورت رخداد آن، امکان اصلاح و بازیابی برنامه وجود ندارد. مثال: OutOfMemoryError، VirtualMachineError، AssertionError و غیره … .