語言

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 陳述式自動且隱含地呼叫。

抑制行為是透過建構子啟用或停用 #Throwable(String, Throwable, Boolean, boolean)才能啟用<><。> 當抑制被停用時,此方法僅用於驗證其參數。

請注意,當一個例外 #initCause(Throwable)引發另一個例外時,通常會先捕捉第一個例外,然後再拋出第二個例外作為回應。 換句話說,這兩個例外之間存在因果關係。

相較之下,有些情況是兄弟程式碼區塊中可以拋出兩個獨立例外,特別是在 try -with-resources 敘述的區塊 try和由編譯器產生 finally 關閉該資源的區塊中。

在這些情況下,拋出的例外中只能有一個被傳播。 在 try-with-resources 陳述式中,當有兩個此類例外時,來自該區塊的例外 try 會被傳播,並將該區塊的例外 finally 加入被該區塊的例外 try 所抑制的例外清單中。 當例外會解開堆疊時,它可能會累積多個被抑制的例外。

例外可能包含被抑制的例外,但同時又是由另一個例外所引起。 例外是否有原因在產生時語意上已知,與例外是否會抑制其他例外不同,後者通常只有在拋出例外後才會判定。

請注意,程式設計師撰寫的程式碼也能利用呼叫此方法,當有多個兄弟例外且只能傳播一個例外時。

在 1.7 版本中加入。

Java 文件 java.lang.Throwable.addSuppressed(java.lang.Throwable)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於