try-with-resources中的两种密切方法

时间:2016-11-21 23:04:13

标签: java exception try-with-resources

我已获得以下代码:

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

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

1 个答案:

答案 0 :(得分:3)

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

  

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