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
广告