java try单独使用_我是否正确使用Java 7 try-with-resources

这是正确的,并没有catch条款的要求。 Oracle java 7 doc说,无论是否实际抛出异常,资源都将被关闭。

仅当您要对异常做出反应时,才应使用catch子句。 catch子句将在资源关闭后执行。

以下是Oracle教程的片段:

以下示例从文件中读取第一行。 它使用了   BufferedReader的实例,用于从文件中读取数据。的BufferedReader   是程序完成后必须关闭的资源   它:

static String readFirstLineFromFile(String path) throws IOException {

try (BufferedReader br =

new BufferedReader(new FileReader(path))) {

return br.readLine();

}

} // In this example, the resource declared in the try-with-resources statement is a BufferedReader.

...因为BufferedReader实例是在a中声明的   try-with-resource语句,无论是否,它都将被关闭   try语句正常或突然完成(由于   方法BufferedReader.readLine抛出IOException)。

编辑

关于新编辑的问题:

Java 6中的代码执行catch,然后执行catch块。 这会导致资源仍然可能在catch块中打开。

在Java 7语法中,资源在catch块之前关闭,因此在catch块执行期间资源已经关闭。 这在以上链接中记录:

在try-with-resources语句中,运行任何catch或finally块   在声明的资源关闭后。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值