//求大神解答。。。
1 public class MyException extends Exception { 2 public MyException() { 3 } 4 5 public MyException(String message) { 6 super(message); 7 } 8 }
//Throwable类中的源码
public Throwable(String message) {
fillInStackTrace();
detailMessage = message;
}
试试在MyException中重写getMessage()方法。
参考:Java异常总结
可以重写的,我想问下为什么自定义异常带参构造的时候,会调用Throwable类中的getMessage()方法呢,Throwable的带参构造里,好像没有调用getMessage()方法。只是将message赋值给了detailMessage,而Throwable类中的getMessage()方法。。。
public String getMessage() {
return detailMessage;
}
不知道有什么联系。。。谢谢
@闻香识人: getMessage() 是捕获异常时调用的。
@dudu: 谢谢你的解答,它由jvm调用的吗?好像只有jvm了吧,我自己写了个相似的,根本不能像Throwable类中一样,调用get方法
@闻香识人: 是在这时候调用的:
try { }catch(MyException e) { System.out.println(e.getMessage()) }
@dudu: 谢谢,我明白了。十分感谢你的解答。。。。