Exception ها
Exception ها یا استثناهایی برای مدیریت خطاها در یک برنامه هستند. انواع گوناگونی از استثناها وجود دارد که رایج ترین آنها عبارتند از :
DivideByZeroWithExceptionHandling که هنگام تقسیم بر صفر رخ می دهد و زیر مجموعه استثنای ArithmeticException می باشد که موقع وقوع خطای ریاضی اتفاق می افتد.
ArrayIndexOutOfBoundsException در صورتی که اندیس خارج از خانه های آرایه باشد رخ می دهد.
ArrayStoreException زمانی که نوع داده ای که در خانه آرایه ریخته می شود با خود نوع آرایه متفاوت باشد این exception رخ خواهد داد.
IllegalArgumentException وقتی که از آرگومان های ورودی نامعتبر برای فراخوانی یک متد استفاده شود این exception رخ می دهد.
NullPointerException این استثنا زمانی رخ می دهد که از اشیائی استفاده کنیم که مقداردهی نشده و null هستند.
FileNotFoundException وقتی فایل مورد نظر در آدرس وجود نداشته باشد این استثنا رخ می دهد.
InputMismatchException استثنای ورود مقادیر اشتباه توسط کاربر است.
InstantiationException زمانی که بخواهیم از یک کلاس abstract و یا اینترفیس یک شئ بسازیم این استثنا رخ خواهد داد.
UnsupportedOperationException این exception زمانی رخ می دهد که از عملیاتی استفاده شود که زبان جاوا از آن پشتیبانی نکند.
برای مدیریت استثناها از بلاک try catch استفاده می شود. کدی که احتمالا دارای خطا باشد درون بلاک try قرار گرفته و در بلاک catch متغیری از جنس Exception خاصی که مدنظر است یا کلاس Exception که همه استثناها از آن ارث بری دارند تعریف می شود. می توان برای یک متد هم استثنا تعریف کنیم به این ترتیب که ابتدا بعد از آوردن نام متد بعد از تعریف آن, کلمه کلیدی throws سپس جنس استثنا آورده می شود. در مرحله بعد درون بلاک catch ابندا متغیری از جنس آن Exception ایجاد کرده و بعد مطابق دستور زیر new Exception می شود. ()Throws new Exception
همچنین در کد بالا امکان ارسال پیام و متغیر exception به حافظه پشته ای که استثناها را ذخیره می کند وجود دارد. همانظور که می دانیم استخراج داده ها در پشته به این ترتیب است که آخرین داده وارد شده اول استخراج می شود و به همین صورت تا اولین داده پیش می رود. ضمنا متدهایی مختص استثناها وجود دارد که نمونه ای رایج از آنها printStackTrace جهت نمایش داده های پشته در خروجی است. همچنین استفاده از چند بلاک catch و تعریف چند استثنا هم ممکن است.