首页 新闻 会员 周边 捐助

java在自定义异常时,为什么会调用Throwable类中的getMessaage()方法

0
悬赏园豆:20 [已解决问题] 解决于 2015-04-11 15:21
//求大神解答。。。
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;
}

闻香识人的主页 闻香识人 | 初学一级 | 园豆:29
提问于:2015-04-11 14:35
< >
分享
最佳答案
0

试试在MyException中重写getMessage()方法。

参考:Java异常总结

收获园豆:20
dudu | 高人七级 |园豆:30925 | 2015-04-11 14:47

可以重写的,我想问下为什么自定义异常带参构造的时候,会调用Throwable类中的getMessage()方法呢,Throwable的带参构造里,好像没有调用getMessage()方法。只是将message赋值给了detailMessage,而Throwable类中的getMessage()方法。。。

public String getMessage() {
return detailMessage;
}

不知道有什么联系。。。谢谢

闻香识人 | 园豆:29 (初学一级) | 2015-04-11 14:55

@闻香识人: getMessage() 是捕获异常时调用的。

dudu | 园豆:30925 (高人七级) | 2015-04-11 15:03

@dudu: 谢谢你的解答,它由jvm调用的吗?好像只有jvm了吧,我自己写了个相似的,根本不能像Throwable类中一样,调用get方法

闻香识人 | 园豆:29 (初学一级) | 2015-04-11 15:07

@闻香识人: 是在这时候调用的:

try {

}catch(MyException e) {
    System.out.println(e.getMessage())
}
dudu | 园豆:30925 (高人七级) | 2015-04-11 15:10

@dudu: 谢谢,我明白了。十分感谢你的解答。。。。

闻香识人 | 园豆:29 (初学一级) | 2015-04-11 15:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册