Java - 如果我在 catch block 中返回,finally block 会被执行吗?

标签 java scope try-catch-finally

<分区>

这就是我想要做的:

try {

    //code
} catch (Exception e) {

    return false;
} finally {

    //close resources
}

这行得通吗?这是不好的做法吗?这样做会更好吗:

boolean inserted = true;

try {

    //code
} catch (Exception e) {

    inserted = false;
} finally {

    //close resources
}

return inserted;

最佳答案

是的,会的。唯一可以阻止 finally block 执行 (AFAIR) 的是 System.exit() 和无限循环(当然还有 JVM 崩溃)。

关于Java - 如果我在 catch block 中返回,finally block 会被执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980172/

相关文章:

java - 将 Java 套接字文件描述符传递给 C 二进制文件的最有效方法

C - C 函数的作用域

java - Java 中的 try-catch-finally block

java - 在 Java 中使用 finally block 捕获异常及其消息

java - JDK更新时哪些文件被替换了?

java - 如何使用java读取euc-kr编码系统中utf8 encodng的文件名?

ruby - @instance_variable 在 ruby​​ block 内不可用?

c++ - 指针、类项和范围

c# - 如何在 AppDomain.CurrentDomain.UnhandledException 处理程序中退出应用程序并仍然确保 finally{} block 执行?

java - 类 Class 的实例