Java 中方法中 return 語句之後,finally 程式碼塊是否會執行?


是的,即使在方法中存在 return 語句,finally 程式碼塊也會執行。

在 Java 中,無論是否出現異常,finally 程式碼塊都始終會執行。如果我們在 finally 程式碼塊中明確呼叫 System.exit() 方法,則它不會執行。有一些情況 finally 程式碼塊不會執行,例如 JVM 崩潰、斷電、軟體崩潰等。除了這些情況之外,finally 程式碼塊始終會執行。

示例

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 execute even after a return statement in a method
1

更新於:2023 年 11 月 24 日

1.8 萬次瀏覽

職業生涯開啟你的

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.