gpt4 book ai didi

java - try-with-resources 总是会关闭资源

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:22:57 24 4
gpt4 key购买 nike

无论错误情况如何,try-with-resources 都会始终关闭资源吗?我的意思是考虑以下代码:

try (BufferedReader br =
new BufferedReader(new FileReader(path))) {
return br.readLine();
}

br 会一直关闭吗?我已阅读 Oracle 文档,其中说:

it will be closed regardless of whether the try statement completes normally or abruptly

所以不管程序是正常运行还是抛出异常都会起作用。但是像 System.exitJVM 崩溃这样的情况呢?我知道这些条件不适用于 finally block 。那么是否存在 try-with-resources 失败的条件?

这只是我的好奇心,有人可以解释一下吗?

最佳答案

try-with-resource 只是一种语法糖,可以让您免于混淆 finally 子句的麻烦。 try block 内发生的任何“java-ish”都不会阻止资源关闭 - 返回、抛出异常等。

任何突然终止 JVM 的事情(比如调用 System#exit、杀死 JVM 的进程、拔掉计算机的电源等)都不会被处理,就像它不是由旧的处理程序一样- 时尚的 finally 子句。

关于java - try-with-resources 总是会关闭资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37538592/

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