public static void main(String[] args) {
Exception one = new Exception("my cause");
System.out.println("A) " + one.getMessage());
System.out.println();
Exception two = new Exception(one);
System.out.println("B) " + two.getMessage());
System.out.println("C) " + two.getCause().getMessage());
System.out.println();
Exception three = new Exception("my message", one);
System.out.println("D) " + three.getMessage());
System.out.println("E) " + three.getCause().getMessage());
System.out.println();
Exception fourth = new Exception(null, one);
System.out.println("F) " + fourth.getMessage());
System.out.println("G) " + fourth.getCause().getMessage());
}
輸出一個代碼是這樣一個
A) my cause
B) java.lang.Exception: my cause
C) my cause
D) my message
E) my cause
F) null
G) my cause
參見B
和F
之間的差異在兩個我沒有提供消息的情況,但不同的是,在B
的情況下,null
的值不是強制的。
似乎爲B
情況下,沒有指定的消息時,則getMessage()
方法提供的格式 className: cause.getMessage()
但我除了具有null
值(如對於F
情況)。
有沒有辦法讓null
值(如F
)如果我呼籲已創建只有cause
而不是message
提供一個異常getMessage
?
我用一個處理此行爲的簡單方法編輯主消息。這可能不是最好的方法,但對我的情況工作得很好。 –
噢好吧,我總是用適當的解決方案編輯主要問題(清楚地表明這是第一個問題的編輯)。我加了一個不同的答覆。現在希望更好 –