首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自try块和try-with-resources的异常

来自try块和try-with-resources的异常
EN

Stack Overflow用户
提问于 2020-08-12 17:54:03
回答 1查看 157关注 0票数 1

文档

但是,在本例中,如果方法readLineclose都抛出异常,那么方法readFirstLineFromFileWithFinallyBlock将抛出从finally块抛出的异常;从try块抛出的异常将被抑制。相反,在示例try中,如果从块和语句**引发异常,则readFirstLineFromFile方法将抛出从try块抛出的异常;从trywith资源块抛出的异常将被抑制。在Java 7和更高版本中,您可以检索被抑制的异常;有关更多信息,请参阅“抑制异常”一节。

我不明白大胆的部分

如果从try try**-with-resources块和语句引发异常,则为**.

如何从带有资源的try语句和try块中抛出异常?如果从带有资源的try语句引发异常,则意味着资源初始化失败。在这种情况下,永远不会执行try块。因此,前面的语句不可能发生。

我一定误解了这个文档try与资源的工作方式。您能提供实际发生粗体语句的例子吗?

上述方法

代码语言:javascript
复制
static String readFirstLineFromFile(String path) throws IOException {
    try (BufferedReader br =
                   new BufferedReader(new FileReader(path))) {
        return br.readLine();
    }
}
代码语言:javascript
复制
static String readFirstLineFromFileWithFinallyBlock(String path)
                                                     throws IOException {
    BufferedReader br = new BufferedReader(new FileReader(path));
    try {
        return br.readLine();
    } finally {
        if (br != null) br.close();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-12 18:03:16

如何从try -语句和try块引发异常?如果从try-with语句引发异常,则意味着资源初始化失败。

try-with语句不仅初始化而且关闭资源,关闭可能引发异常。

这句话是在描述了在使用“最后一次尝试”时类似的情况之后出现的,并将其与“使用资源”进行了比较。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63382197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档