Jir*_*ser 4 java try-with-resources
try-with-resource构造的优先规则是什么?这是一个例子(注意:所有提到的类都实现Closeable):
try (Page closeablePage = page;
PipedOutputStream out = outs;
SequenceWriter sequenceWriter = mapper.writer().writeValuesAsArray(out)) {
// do stuff
} finally {
callback.run();
}
Run Code Online (Sandbox Code Playgroud)
回调何时运行?我的假设是:
SequenceWriterPipedOutputStreamPage我错了吗?
该语句将finally关闭所有资源后运行该块 try-with-resources.
这在JLS 第14.20.3.2节中指定,引用:
此外,所有资源都将在执行finally块时关闭(或尝试关闭),与finally关键字的意图保持一致.
此外,所有资源都以反向声明顺序关闭.引用部分14.20.3(重点煤矿):
资源以与初始化资源相反的顺序关闭.仅当资源初始化为非空值时才关闭资源.关闭一个资源的例外不会阻止关闭其他资源.如果先前由初始化程序,try块或资源关闭抛出异常,则会抑制此类异常.
这意味着您的假设是正确的.
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |