Throwable.AddSuppressed(Throwable) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将指定的异常追加到为了提供此异常而取消的异常。
[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 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。