Java 中 finally 块是否会在方法中的 return 语句之后执行?

javaobject oriented programmingprogramming更新于 2024/7/26 10:43:00

是的,即使在方法中的 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 always excute even after a return statement in a method
1

相关文章