ได้ เราสามารถเขียนคำสั่ง return ของ method ใน catch และ block ได้ในที่สุด
- มีสถานการณ์ที่เมธอดจะมีประเภทการส่งคืน และเราสามารถคืนค่าบางส่วนที่ส่วนของเมธอดตามเงื่อนไข
- หากเราคืนค่าในบล็อก catch และเราสามารถคืนค่าที่ส่วนท้ายของเมธอด โค้ดจะทำงานได้สำเร็จ
- หากเราคืนค่าใน catch block และเราสามารถเขียนคำสั่งที่ส่วนท้ายของเมธอดหลังจากคืนค่าแล้ว โค้ดจะไม่ทำงานจึงกลายเป็นโค้ดที่ไม่สามารถเข้าถึงได้ เนื่องจากเราทราบดีว่า Java ไม่รองรับโค้ดที่ไม่สามารถเข้าถึงได้
- หากเราคืนค่าในบล็อกสุดท้ายและไม่ต้องการเก็บค่าที่ส่งคืนไว้ที่ส่วนท้ายของเมธอด
ตัวอย่างที่ 1
public class CatchReturn { int calc() { try { int x=12/0; } catch (Exception e) { return 1; } return 10; } public static void main(String[] args) { CatchReturn cr = new CatchReturn(); System.out.println(cr.calc()); } }
ผลลัพธ์
1
ตัวอย่างที่ 2
public class FinallyReturn { int calc() { try { return 10; } catch(Exception e) { return 20; } finally { return 30; } } public static void main(String[] args) { FinallyReturn fr = new FinallyReturn(); System.out.println(fr.calc()); } }
ผลลัพธ์
30