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 万次浏览

职业生涯开启你的

通过完成课程获得认证

立即开始
广告