Share via


Throwable.AddSuppressed(Throwable) 方法

定义

将指定的异常追加到为了提供此异常而取消的异常。

[Android.Runtime.Register("addSuppressed", "(Ljava/lang/Throwable;)V", "")]
public void AddSuppressed (Java.Lang.Throwable exception);
[<Android.Runtime.Register("addSuppressed", "(Ljava/lang/Throwable;)V", "")>]
member this.AddSuppressed : Java.Lang.Throwable -> unit

参数

exception
Throwable

要添加到抑制异常列表的异常

属性

例外

如果 为 ,则为 throwable == this

如果 为 ,则为 throwable == null

注解

将指定的异常追加到为了提供此异常而取消的异常。 此方法是线程安全的,通常称为 (-with-resources 语句自动和隐式) try

除非通过构造函数 #Throwable (String、Throwable、boolean、boolean) 禁用,否则<>将启用<>抑制行为。 禁用抑制时,此方法除了验证其参数外,不执行任何其他功能。

请注意,当一个异常 #initCause (可引发) 导致另一个异常时,通常会捕获第一个异常,然后引发第二个异常以响应。 换句话说,这两个例外之间存在因果关系。

相比之下,在某些情况下,可以在同级代码块中引发两个独立的异常,尤其是在 try -with-resources 语句的 try块和关闭资源的编译器生成的 finally 块中。

在这些情况下,只能传播一个引发的异常。 在 try-with-resources 语句中,当存在两个此类异常时,将传播源自 try 块的异常,并将块中的 finally 异常添加到块中的异常抑制的异常 try 列表中。 当异常展开堆栈时,它可以累积多个抑制异常。

异常可能已抑制异常,同时也由另一个异常引起。 异常是否具有原因在创建时在语义上是已知的,这与异常是否会抑制通常仅在引发异常后确定的其他异常不同。

请注意,在有多个同级异常且只能传播一个同级异常的情况下,程序员编写的代码也能够利用调用此方法。

在 1.7 中添加。

java.lang.Throwable.addSuppressed(java.lang.Throwable)Java 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

适用于