gpt4 book ai didi

java - 为什么 finally 中的代码即使在 try block 中返回也会执行?

转载 作者:搜寻专家 更新时间:2023-11-01 04:00:16 25 4
gpt4 key购买 nike

代码:



public String get() {
尝试 {
//做点什么
返回“你好”;
}
最后 {
System.out.print("终于");
}

这段代码是如何执行的?

最佳答案

因为这是 finally block 的全部要点 - 无论您离开 try block ,它都会执行,除非 VM 本身突然关闭。

通常 finally block 用于清理资源 - 您不会希望仅仅因为您在 try block 期间返回而让文件句柄保持打开状态,对吗?现在您可以将清理代码放在返回语句之前——但是如果代码抛出异常,那么它就不会被清理。使用 finally,清理代码将执行但是您离开 block ,这通常是您想要的。

参见 JLS section 14.20.2有关更多详细信息 - 并注意所有路径如何涉及 finally block 执行。

关于java - 为什么 finally 中的代码即使在 try block 中返回也会执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4957401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com