try-with-resources和try-catch-finally的区别

41 篇文章 0 订阅
15 篇文章 0 订阅

1.try-with-resources

作用:捕捉异常,同时关闭资源。
使用条件
try-with-resources使用是java1.7增加了新特性,只要实现了AutoCloseable 或 Closeable,在try代码块结束之前,会自动关闭资源.。而字节输入流(InputStream),字节输出流(OutputStream),字符输入流(Reader),字符输出流(Writer)均实现了这接口。
官网: http://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html

2.try-catch-finally

作用:捕捉异常,同时关闭资源。

3.两者区别

try-catch-finally:没有限制条件,finally不仅可以关闭资源,还可以用于执行其他代码块;
try-with-resources:代码更加简洁,有限制条件,资源会立即被关闭。

警告:finally关闭资源不会立即关闭,取决与网络和系统,可能会很快,也可能会等一两天,所以,最好不要使用finally作为业务流程的控制,在《Effective java》一书 的第9条:try-with-resources优先于try-finally 中有相关详细的介绍,其中提到了许多由于finally延迟导致的网络事件。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值