کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Java – کار با دستور finally در Java

آموزش Java – کار با دستور finally در Java

قطعه کد finally میزبان کدهایی است که اجرای آن ها بسیار مهم است نظیر بستن connection به دیتابیس یا متوقف کردن stream از بایت ها و غیره ... . دستور finally صرف نظر این که خطایی در برنامه رخ داده و مدیریت می شود یا خیر، اجرا خواهد شد و به عبارت دیگر فراخوانی آن قطعی است. finally همیشه پس از try یا catch استفاده می شود.

آموزش Java
نکته:

اگر خطای رخ داده را قبل از خاتمه ی برنامه، مدیریت نکنید، JVM قطعه کد finally را اجرا می کند.

دلیل استفاده از ساختار دستوری Finally

  • می توان داخل بدنه ی finally کدهای مهمی نظیر بستن یک فایل، قطع connection به دیتابیس و غیره ... را جایگذاری کرد.

استفاده ی کاربردی از finally در جاوا

در زیر موارد مختلفی که می توان در آن ها از finally استفاده کرد را مشاهده می کنید.

مثال 1
Let's see the java finally example where exception doesn't occur.
class TestFinallyBlock{  
public static void main(String args[]){  
try{  
int data=25/5;  
System.out.println(data);  
}  
catch(NullPointerException e){System.out.println(e);}  
finally{System.out.println("finally block is always executed");}  
System.out.println("rest of the code...");  
}  
}  

خروجی:

5
finally block is always executed
rest of the code...
مثال 2

در زیر نمونه ای را مشاهده می کنید که در آن خطا رخ داده، اما مدیریت نمی شود.

class TestFinallyBlock1{  
public static void main(String args[]){  
try{  
int data=25/0;  
System.out.println(data);  
}  
catch(NullPointerException e){System.out.println(e);}  
finally{System.out.println("finally block is always executed");}  
System.out.println("rest of the code...");  
}  
}  

خروجی:

finally block is always executed
       Exception in thread main java.lang.ArithmeticException:/ by zero
مثال 3

در زیر مثالی را مشاهده می کنید که در آن خطا رخ داده و بلافاصله مدیریت می شود.

public class TestFinallyBlock2{  
public static void main(String args[]){  
try{  
int data=25/0;  
System.out.println(data);  
}  
catch(ArithmeticException e){System.out.println(e);}  
finally{System.out.println("finally block is always executed");}  
System.out.println("rest of the code...");  
}  
}  

خروجی:

Exception in thread main java.lang.ArithmeticException:/ by zero
       finally block is always executed
       rest of the code...
نکته:

به ازای هر قطعه کد try می توان 0 یا چندین دستور catch داشت در حالی که قطعه کد finally می تواند تنها یکبار استفاده شود.


نکته:

چنانچه برنامه به هر دلیلی خاتمه یابد (برای مثال به سبب فراخوانی متد System.exit() یا رخداد خطای جدی که سبب می شود فرایند میزبان متوقف شود)، در آن صورت قطعه کد finally اجرا نخواهد شد.

1396/07/28 4634 1553
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...