2014-11-02 41 views
0
public class TestException extends Exception 
{ 
    public TestException() 
    { 
     super("Test Exception 1 thrown!"); 
     System.out.println("Test Exception 2 thrown!"); 
    } 
... 
} 

在另一個地方,我有這樣的代碼:Java異常getMessage()方法調用構造函數

TestException exceptionObject = new TestException(); 
System.out.println(exceptionObject.getMessage()); 

我打印出來的結果如下:

Test Exception 2 thrown! 
Test Exception 1 thrown! 

能不能請你告訴我爲什麼println方法的輸出是第一位的?

+0

我想你在問問題之前先調試你的代碼 – linuxlsx 2014-11-02 13:27:54

回答

1

首先構造異常(通過調用new TestException()),它將Exception的消息屬性設置爲「Test Exception 1 thrown!」,但不打印它,並打印「Test Exception 2 thrown!」。

然後您打印getMessage()的值,通過致電System.out.println(exceptionObject.getMessage());。這會打印出「測試例外1拋出!」

因此你得到的輸出。

順便說一句,爲了清楚起見,不管你打印的信息如何,這裏都沒有例外。