java, آموزش قدم به قدم جاوا, جاوا

استثناها در جاوا (exceptions in java)

استثناها در جاوا

در این جلسه تیم کدگیت را با آموزش استثناها در جاوا همراهی کنید. این آموزش پیش نیاز خاصی ندارد.

استثناها

استثناها مشکلاتی هستند که در اجرای برنامه ایجاد می شوند.وقتی یک استثنا در برنامه رخ میدهد جریان عادی اجرای کدها دچار اختلال میشود و برنامه به صورت غیر عادی متوقف میشود. این اتفاقات معمولا کاربران را دچار ناراحتی و نارضایتی میکند. به همین دلیل توصیه میشود که استثناها کنترل شوند.

اختلال در برنامه یا رخ دادن استثناها میتواند دلایل مختلفی داشته باشد. میتواند اشکال برنامه نویسی یا کمبود فضای سخت افزار باشد.در زیر 3 نمونه از مواقعی که استثنا رخ میدهد آورده شده است:

  1. کاربر اطلاعات اشتباهی وارد کند.
  2. فایلی که به آن ارجاع شده وجود ندارد یا مجوز نوشتن در آن را نداشته باشیم.
  3. اینترنت در میانه اتصال به سرور دچار اختلال شود یا فضای JVM پر شود!!

انواع استثناها در جاوا

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

  1. Checked Exception: این نوع استثنا در مواقع کامپایل رخ میدهد.
  2. Unchecked exceptions: این نوع استثنا در زمان اجرا رخ میدهد.
  3. Error: این نوع استثناها تحت کنترل کاربر یا برنامه نویس نیست و در زمان کامپایل نادیده گرفته میشود.

Checked exceptions

این نوع استثنا در مواقع کامپایل رخ میدهد و البته گاهی اوقات اوقات آنها را نیز استثناهای زمان کامپایل نیز میگویند. اینگونه استثناها به راحتی در زمان کامپایل نمیتوان از آن گذشت و برنامه نویسان باید آن را مدیریت کنند.برای مثال کد زیر مثالی برای این نوع استثناها در جاوا است. کلاس FileReader تلاش میکند فایل text.txt را باز کند ولی چون وجود ندارد در زمان کامپایل اررور میدهد(توجه داشته باشید کامپایل با اجرای برنامه متفاوت است!!).

 public static void main(String args[]) {                   
      File file = new File("E://file.txt");
      FileReader fr = new FileReader(file);
   }

Unchecked exceptions

این نوع استثنا در زمان اجرا رخ میدهد. گاهی اوقات به آن Runtime Exceptions نیز گفته میشود. این نوع استثنا شامل باگهای برنامه یا ایرادات منطقی در برنامه هستند. برای مثال کد زیر آرایه ای شامل 4 خانه است ولی ما از خانه 5 استفاده کردیم. این کد در زمان کامپایل مشکلی ندارد ولی در زمان اجرا برنامه را متوقف میکند:

   public static void main(String args[]) {
      int num[] = {1, 2, 3, 4};
      System.out.println(num[5]);
   }

Error

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

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

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

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