ใช่ บล็อกสุดท้ายจะถูกดำเนินการแม้หลังจากคำสั่งส่งคืนในเมธอด
ปิดกั้นในที่สุด จะดำเนินการเสมอแม้มีข้อยกเว้นเกิดขึ้นหรือไม่ใน Java ถ้าเราเรียก System.exit() วิธีการอย่างชัดเจนใน ในที่สุดก็ปิดกั้น เท่านั้นก็จะไม่ถูกประหารชีวิต มีบางสถานการณ์ที่สุดท้ายจะไม่ถูกดำเนินการเช่น JVM ขัดข้อง , ไฟฟ้าขัดข้อง , ซอฟต์แวร์ขัดข้อง และอื่นๆ นอกเหนือจากเงื่อนไขเหล่านี้ บล็อกในที่สุด จะถูกดำเนินการเสมอ
ตัวอย่าง
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