آموزش Try Catch در جاوا
سلام دوستان و توسعه دهندگان عزیز در این سری از آموزش برنامه نویسی جاوا به آموزش Try Catch در جاوا می پردازیم از Try Catch به منظور جلوگیری از رخداد Exception یا استثنا استفاده می شود در آموزش قبلی Exception را مورد بررسی قرار دادیم در این آموزش نحوه استفاده از Try Catch را خواهید آموخت تا چگونه از رخداد خطا و همینطور بسته شدن برنامه جلوگیری کنید همانطور که گفتیم از Try Catch برای جلوگیری از بروز خطا استفاده می شود با ما همراه باشید.
مثل همیشه ابتدا Syntax مربوط به Try Catch را بررسی خواهیم کرد.
1 2 3 4 5 6 7 8 | try { //statements that may cause an exception } catch (exception(type) e(object)) { //error handling code } |
نکته قابل توجه اینجاست که try حتما باید با catch استفاده شود شما نمی توانید try را به تنهایی استفاده کنید.
بلاک try
کد اصلی ما باید در اینجا قرار گیرد به طور مثال می خواهیم یک عددی را بر عددی دیگر تقسیم کنیم آن کد را در این بخش یعنی try قرار خواهیم داد.
بلاک catch
زمانی که خطا رخ دهد یا استثنایی وجود داشته باشد وارد این بخش خواهد شد و می توان به طور مثال خطایی چاپ یا به کاربر پیامی نشان داده شود.
نکته می توان چندین catch داشت که برای بررسی استثناهای مختلف باشد در ادامه مثال خواهیم زد حتما catch باید بعد از try آماده باشد در غیر اینصورت خطا خواهید داشت.
یک کلاس به نام Example1 ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Example1 { public static void main(String args[]) { int num1, num2; try { num1 = 0; num2 = 62 / num1; System.out.println(num2); System.out.println("Hey I'm at the end of try block"); } catch (ArithmeticException e) { System.out.println("You should not divide a number by zero"); } catch (Exception e) { System.out.println("Exception occurred"); } System.out.println("I'm out of try-catch block in Java."); } } |
در بالا می خواستیم خطای تقسیم بر صفر را چک کنیم این نوع خطا از نوع ArithmeticException یا خطای ریاضی هستند پس یک catch به این نام ایجاد می کنیم همانطور که مشاهده می کنید کد اصلی در بدنه یا body کلمه کلیدی try قرار گرفته است.
به طور معمول زمانی که کد بالا اجرا می شود ابتدا وارد try خواهد شد و در صورتی که خطایی رخ دهد وارد catch میشود.
خروجی کد بالا همانند زیر خواهد بود.
1 2 | You should not divide a number by zero I'm out of try-catch block in Java. |
کد زیر
1 2 3 | catch(Exception e){ //This catch block catches all the exceptions } |
کد بالا تمامی خطاهایی که اتفاق بیفتد را می گیرد پس لازم نیست تمامی Exception ها را آموخت ولی بهتر است از هر Exception در جای درست آن استفاده شود.
یک مثال دیگر برای اینکه مبحث را بهتر متوجه شوید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class Example2{ public static void main(String args[]){ try{ int a[]=new int[7]; a[4]=30/0; System.out.println("First print statement in try block"); } catch(ArithmeticException e){ System.out.println("Warning: ArithmeticException"); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("Warning: ArrayIndexOutOfBoundsException"); } catch(Exception e){ System.out.println("Warning: Some Other exception"); } System.out.println("Out of try-catch block..."); } } |
در بالا catch های متوالی و پشت سرهم قرار دادیم ArrayIndexOutOfBoundsException زمانی رخ خواه داد که در یک آرایه خانه ای را صدا بزنیم که اصلا وجود نداشته باشد.
خروجی کد بالا همانند زیر خواهد بود.
1 2 | Warning: ArithmeticException Out of try-catch block... |
این آموزش هم به پایان رسید.
موفق باشید.