2014-11-02 38 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抛出!”

因此你得到的输出。

顺便说一句,为了清楚起见,不管你打印的信息如何,这里都没有例外。