public class TestException extends Exception
{
public TestException()
{
super("Test Exception 1 thrown!");
System.out.println("Test Exception 2 thrown!");
}
...
}
在另一个地方,我有这样的代码:
TestException exceptionObject = new TestException();
System.out.println(exceptionObject.getMessage());
我打印出如下结果:
Test Exception 2 thrown!
Test Exception 1 thrown!
请您告诉我为什么println
方法的输出先出现?
答案 0 :(得分:1)
首先构造异常(通过调用new TestException()
),它将Exception的message属性设置为“抛出测试异常1!”,但不打印它,并打印出“抛出测试异常2”! 。
然后通过调用getMessage()
打印System.out.println(exceptionObject.getMessage());
的值。这打印出“测试例外1被抛出!”
因此你获得了输出。
顺便说一句,只是为了说清楚,无论你打印什么信息,这里都没有例外。