在 try-with-resources 中打开连接 - 第二个资源取决于第一个

Posted

技术标签:

【中文标题】在 try-with-resources 中打开连接 - 第二个资源取决于第一个【英文标题】:Open connection in try-with-resources - second resource depend on first 【发布时间】:2019-03-21 11:22:26 【问题描述】:

我想使用 try-with-resources。我有两个资源,第二个取决于第一个。首先初始化后,我需要在第一个资源上执行方法。接下来我可以初始化第二个资源。我该怎么办?

try (First first = resource.get());
     --Here I need run method: first.connect(...);
     Second second = first.get())
     
      ...
     

【问题讨论】:

希望这会给你一个想法。 ***.com/questions/47175526/… 在第一个 try-with-resources 的 try 块内使用第二个 try-with-resources。 【参考方案1】:

你可以嵌套try-with-resources,就像你可以使用普通的try-blocks:

try (First first = resource.get()) 
    first.connect(...);
    try (Second second = first.get()) 
        // ...
    

【讨论】:

谢谢。我有:try (First first = resource.get()) first.connect(...); try (Second second = first.get()) // ... catch(Exception ex)..第二次抛出异常的时候,第一次try-catch捕获这个异常? @user11149927 当然,为什么你认为它不会?!它是第一个可以处理异常的 catch 块。

以上是关于在 try-with-resources 中打开连接 - 第二个资源取决于第一个的主要内容,如果未能解决你的问题,请参考以下文章

android studio打开Zxing的android 项目出错,不支持try-with-resources?

深入理解 Java try-with-resource 语法糖

Java try-with-resources 卡住了

使用 try-with-resources 优雅关闭资源

java7 try-with-resources

一篇文章带你深入理解 try-with-resource