Java 異常連結
連結異常有助於將一個異常與另一個異常相關聯。我們經常需要丟擲一個自定義異常,並希望保留原始異常的詳細資訊,在這種情況下,我們可以使用連結異常機制。考慮以下示例,我們在其中丟擲一個自定義異常,同時保留了原始異常的訊息。
示例
public class Tester { public static void main(String[] args) { try { test(); }catch(ApplicationException e) { System.out.println(e.getMessage()); } } public static void test() throws ApplicationException { try { int a = 0; int b = 1; System.out.println(b/a); }catch(Exception e) { throw new ApplicationException(e); } } } class ApplicationException extends Exception { public ApplicationException(Exception e) { super(e); } }
輸出
java.lang.ArithmeticException: / by zero
throwable 類使用以下方法支援連結異常
建構函式
Throwable(Throwable cause) - 原因是當前異常。
Throwable(String msg, Throwable cause) - msg 是異常訊息,原因是當前異常。
方法
getCause - 返回實際原因。
initCause(Throwable cause) - 設定呼叫異常的原因。
廣告