Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Finally Block จะทำงานหลัง return statement ในเมธอดได้หรือไม่ใน Java?


ใช่ finally block จะทำงานเสมอ แม้จะมี return statement ในเมธอด

finally block จะ execute เสมอ ไม่ว่าจะมี exception หรือไม่ ใน Java หากเรียก System.exit() อย่างชัดเจนใน finally block จึงจะไม่ทำงาน มีสถานการณ์น้อยที่ finally ไม่ทำงาน เช่น JVM crash, power failure, software crash นอกจากนี้ finally จะทำงานเสมอ

ตัวอย่าง

public class FinallyBlockAfterReturnTest {
    public static void main(String[] args) {
        System.out.println(count());
    }

    public static int count() {
        try {
                      return 1; 
        } catch(Exception e) {
                      return 2; 
        } finally {
            System.out.println("Finally block will execute even after a return statement in a method");
        }
    }
}

ผลลัพธ์

Finally block will always excute even after a return statement in a method 1