ได้ เราสามารถเขียนคำสั่ง 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