1.9 try-with-resources 优先于try-finally

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.9 try-with-resources 优先于try-finally相关的知识,希望对你有一定的参考价值。

参考技术A

1.9 try-with-resource 优先于try-finally

在 JDK7 中只要实现了 AutoCloseable 或 Closeable 接口的类或接口,都可以使用 try-with-resource 来实现异常处理和资源关闭异常抛出顺序。

在 Java se 7 中的 try-with-resource 机制中异常的抛出顺序与 Java se 7 以前的版本有一点不一样。是先声明的资源后关闭, JDK7 之前的版本中,如果 rd.readLine() 与 rd.close()(在finally块中) 都抛出异常则只会抛出finally块中的异常,不会抛出 rd.readLine(); 中的异常。这样经常会导致得到的异常信息不是调用程序想要得到的。

JDK7 及以后版本中如果采用 try-with-resource 机制,如果在 try-with-resource 声明中抛出异常(可能是文件无法打开或无法关闭)同时 rd.readLine(),若 抛出异常,则只会抛出 rd.readLine() 的异常。

以上是关于1.9 try-with-resources 优先于try-finally的主要内容,如果未能解决你的问题,请参考以下文章

try-with-resources 语法简介

Try-with-resource'必须是变量声明'[重复]

在 Netbeans 中使用 try-with-resources

使用try-with-resource优雅关闭资源

try-with-resources:Java 是不是对 .close() 的调用顺序做出任何保证?

try-with-resources 失败但尝试有效