2015-09-07 133 views

回答

3

enableSuppression處於Throwable秒(包括Exception

它確定抑制是否被啓用的構造的參數。

Javadocs

的抑制行爲,除非禁用通過構造啓用。

請注意,當一個異常導致另一個異常時,通常會捕獲第一個異常,然後在 響應中引發第二個異常。換言之,兩個例外之間存在因果關係。相反,在某些情況下,可能會在兄弟代碼塊中引發兩個獨立的異常,特別是try-with-resources語句的 try塊和編譯器生成的關閉資源的finally塊。在這些情況下,只有一個被拋出的異常可以傳播。在使用資源嘗試 語句中,當有兩個這樣的異常時,將傳播源自try塊的異常 ,並將finally塊中的異常從 添加到異常列表中,這些異常被try異常從try塊。作爲例外展開堆疊,它可以積累多個抑制的例外。

異常可能會抑制異常,同時也是由 引起的另一個異常。異常是否具有原因在於其創建時在語義上是已知的,這與 異常是否會抑制其他異常(通常僅在拋出異常後確定的 )不同。

請注意,程序員編寫的代碼也可以利用 在存在多個兄弟異常並且只能傳播一個異常的情況下調用此方法。