ใช่ สามารถมีบล็อก try โดยไม่มีบล็อก catch ได้โดยใช้บล็อก finally
ตามที่เรารู้ บล็อก finally จะทำงานเสมอแม้จะมีข้อยกเว้นเกิดขึ้นในบล็อก try ยกเว้น System.exit() จะทำงานเสมอ
ตัวอย่าง 1
public class TryBlockWithoutCatch { public static void main(String[] args) { try { System.out.println("Try Block"); } finally { System.out.println("Finally Block"); } } }ผลลัพธ์
Try Block Finally Block
บล็อก finally จะทำงานเสมอแม้เมธอดจะมีชนิดการคืนค่าและบล็อก try คืนค่าบางค่า
ตัวอย่าง 2
public class TryWithFinally { public static int method() { try { System.out.println("Try Block with return type"); return 10; } finally { System.out.println("Finally Block always execute"); } } public static void main(String[] args) { System.out.println(method()); } }ผลลัพธ์
Try Block with return type Finally Block always execute 10