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

注解

将指定的异常追加到取消的异常,以便传递此异常。 此方法是线程安全的,通常由 try-with-resources 语句调用(自动和隐式)。

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

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

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

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

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

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

已在 1.7 中添加。

适用于 . 的 java.lang.Throwable.addSuppressed(java.lang.Throwable)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于