java-如何捕获try-with-resource语句中close方法引发的异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何捕获try-with-resource语句中close方法引发的异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含966字,纯文字阅读大概需要2分钟。
内容图文
![java-如何捕获try-with-resource语句中close方法引发的异常](/upload/InfoBanner/zyjiaocheng/663/2cb9f3b4fce24e3992009a63e0b7cf36.jpg)
我正在阅读有关Java中try-with-resource语句的信息,该语句可用于指定任意数量的资源.
try (Resource1 res1 = initialize_code; Resource1 res2 = initialize_code; ...)
{
statement;
}
现在,当try块退出时(正常或异常引发异常),将调用所有资源对象的close方法.但是某些关闭方法可能会引发异常.如果close自身抛出异常,在这种情况下会发生什么?
解决方法:
But some close methods can throw exceptions.
是的,他们可以,你是对的.同样,资源以其初始化的相反顺序关闭.
What will happen if
close
method itself throws exception?
正如您提到的,某些close方法也可能引发异常.如果在正常执行try块时发生这种情况,则会将异常引发给调用方.
但是,当引发另一个异常而导致关闭时会发生什么
调用资源的方法,并且其中一个close方法引发异常(实际上重要性较低的异常)?
在这种情况下,原始异常将被重新抛出,并且由close方法引起的异常
也被捕获并附加为supressed exception.这实际上是使用try-with-resource的优势之一,因为实现这种机制手工完成很麻烦.
try {
///statements.
} catch (IOException e) {
Throwable[] supressedExceptions = ex.getSupressed();
}
内容总结
以上是互联网集市为您收集整理的java-如何捕获try-with-resource语句中close方法引发的异常全部内容,希望文章能够帮你解决java-如何捕获try-with-resource语句中close方法引发的异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。