Java try-with-resources中的两个close方法
我有以下代码:Java try-with-resources中的两个close方法,java,exception,try-with-resources,Java,Exception,Try With Resources,我有以下代码: try(Socket s1=new Socket(...); Socket s2=new Socket(...);) { some logic... } 据我所知,Java首先关闭s2,然后关闭s1。 如果s2.close()抛出异常,会发生什么?Java会在上次失败后尝试关闭s1吗?引用(强调我的): 资源的关闭顺序与初始化资源的顺序相反。资源只有在初始化为非空值时才会关闭关闭一个资源的异常不会阻止关闭其他资源。 引用(重点): 资源的关闭顺序与初始化资源的顺序相反。资源
try(Socket s1=new Socket(...); Socket s2=new Socket(...);)
{
some logic...
}
据我所知,Java首先关闭s2
,然后关闭s1
。
如果s2.close()
抛出异常,会发生什么?Java会在上次失败后尝试关闭s1吗?引用(强调我的):
资源的关闭顺序与初始化资源的顺序相反。资源只有在初始化为非空值时才会关闭关闭一个资源的异常不会阻止关闭其他资源。
引用(重点):
资源的关闭顺序与初始化资源的顺序相反。资源只有在初始化为非空值时才会关闭关闭一个资源的异常不会阻止关闭其他资源。
对try with resources保证在
s2
和s1
上都会调用close
(按顺序)。这种行为是否有文档记录?因为我在这里找不到:是的。try with resources保证在s2
和s1
上都会调用close
(按顺序)。这种行为是否有文档记录?因为我在这里找不到: