首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要一位专家来让我理解Java的addSuppressed是干什么的?

我需要一位专家来让我理解Java的addSuppressed是干什么的?
EN

Stack Overflow用户
提问于 2012-12-06 18:02:20
回答 1查看 1.2K关注 0票数 6

可能重复: 方法

所以Java在可抛中有一个方法

代码语言:javascript
复制
public final void addSuppressed(Throwable exception) 

它就是这样做的:

将指定的异常附加到为传递此异常而被抑制的异常中。此方法是线程安全的,通常由try-with语句调用(自动和隐式)。

.我对此感到困惑,什么是“为传递这一例外而被抑制的例外的具体例外”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 18:13:42

在文档中有一个很好的解释:可抛

除非通过构造函数禁用,否则将启用抑制行为。当禁用抑制时,此方法只会验证其参数。 注意,当一个异常导致另一个异常时,通常会捕获第一个异常,然后抛出第二个异常作为响应。换句话说,这两个例外之间有因果关系。相反,在某些情况下,可以在兄弟代码块中抛出两个独立的异常,特别是在具有资源的try - where语句的try块和关闭资源的编译器生成的最终块中。在这些情况下,只能传播其中一个抛出的异常。在try -with语句中,当有两个这样的异常时,来自try块的异常将被传播,来自finally块的异常将被添加到由try块的异常抑制的异常列表中。当异常展开堆栈时,它可以累积多个抑制的异常。 异常可以抑制异常,同时也是由另一个异常引起的。异常在创建时是否有原因在语义上是已知的,不像异常是否会抑制通常只有在抛出异常后才确定的其他异常。 请注意,程序员编写的代码还可以在存在多个兄弟异常且只能传播一个的情况下调用此方法。

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

https://stackoverflow.com/questions/13749714

复制
相关文章

相似问题

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