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

เรามีคำสั่ง return ใน catch หรือบล็อกใน Java ได้หรือไม่?


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