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

مدیریت استثنا در جاوا (Exception Handling)

مدیریت استثنا در جاوا

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

  1. آشنایی با استثناها
  2. آرایه در جاوا

استثناها

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

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

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

سلسه مراتب استثنا در جاوا

همانطور که در تصویر زیر میبینید همه استثناها فرزند کلاس exception هستند و خود exception نیز زیر کلاس throwable است. البته throwable یک فرزند دیگر به نام error دارد.

حال آیا خود کلاس exceptions به صورت بالا است یا گسترده تر است؟!!! در بالا فقط نام runtimeexception آورده شده است و بقیه را other exception قرار دادیم. اما این توضیح کاملی از Exception نیست. در تصویر زیر دیاگرام کامل Exceptions را میبینید.

مدیریت استثنا در جاوا

برای مدیریت استثنا در جاوا لازم است دو کلمه کلیدی دیگر معرفی کنیم. Try و catch این دو کلمه هستند.ساختار try و catch در جاوا به صورت زیر است:

try {
   // Protected code
}catch(ExceptionName e1) {
   // Catch block
}

کاری که try و catch میکند دقیقا همان مدیریت استثنا در جاوا است. هر کدی که در داخل پرانتز try نوشته شود میتواند استثنا را مدیریت کند. بدین صورت که کد درون try سعی میکند اجرا شود و اگر در حین اجرا دچار رخ دادن استثنا شود کد ما به قسمت Catch میرود. در اینجا ما هر استثنا را که میخواهیم مدیریت کنیم را درون catch میگذاریم.حال اگر استثنایی رخ داد و درون catch نبود به متد واگذار میشود!!!

public static void main(String[] args) {
          try {
              int a[] = new int[2];
              System.out.println("Access element three :" + a[3]);
          } catch (ArrayIndexOutOfBoundsException e) {
              System.out.println("Exception thrown  :" + e);
          }
          System.out.println("Out of the block");

     }

در کد مدیریت استثنا در جاوا آرایه ای به طول 2 ساختیم و درون try سعی میکنیم به خانه سوم آرایه دسترسی پیدا کنیم( وجود ندارد و استثنا رخ میدهد).استثنایی که در این حالت رخ میدهد ArrayIndexOutOfBoundsException نام دارد. ما این استثنا را مدیریت کرده ایم. حتی میتوان برنامه را ادامه داد یا متوقف کرد. در حالت کلی وقتی استثنا رخ میدهد برنامه متوقف میشود ولی اگر آن را مدیریت کنیم میتوان برنامه را ادامه داد. خروجی برنامه به صورت زیر است.

Exception thrown  :java.lang.ArrayIndexOutOfBoundsException: 3

Out of the block

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

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

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