【问题标题】:Two close methods in try-with-resourcestry-with-resources 中的两种关闭方法
【发布时间】:2016-11-21 23:04:13
【问题描述】:

我有以下代码:

try(Socket s1=new Socket(...); Socket s2=new Socket(...);)
{
  some logic...
}

据我了解,Java 先关闭s2,然后关闭s1。 如果s2.close() 抛出异常会发生什么? Java 会在上次失败后尝试关闭s1 吗?

【问题讨论】:

标签: java exception try-with-resources


【解决方案1】:

引用JLS Sec 14.20.3(强调我的):

资源的关闭顺序与它们初始化时的顺序相反。仅当资源初始化为非空值时才关闭资源。 关闭一个资源的异常不会阻止关闭其他资源。

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 2017-12-04
    • 2014-05-05
    • 2020-01-01
    • 2016-09-29
    • 1970-01-01
    • 2011-10-16
    • 2015-08-13
    • 2017-05-06
    相关资源
    最近更新 更多