如何解决请告诉我该异常的描述未出现
|package javaapplication16;
class ExceptionoftheGods extends Exception {
double b;
ExceptionoftheGods (String msg){
}
}
class mak {
static void compute(int a) throws ExceptionoftheGods {
System.out.println(\"Called Compute(\" + a + \")\");
if(a > 7) {
throw new ExceptionoftheGods(\"Dog\");
}
System.out.println(\"Normal Exit\");
}
public static void main(String[] args) {
try {
compute(1);
compute(9);
} catch(ExceptionoftheGods e) {
System.out.println(\" Caught \" + e);
}
}
}
输出值
run:
Called Compute(1)
Normal Exit
Called Compute(9)
Caught javaapplication16.ExceptionoftheGods
BUILD SUCCESSFUL (total time: 0 seconds)
解决方法
ExceptionoftheGods(String msg) {
super(msg); // missing
}
, 您需要在子类的构造函数中调用基本异常构造函数,否则实际上不会设置该消息:
ExceptionoftheGods(String msg) {
super(msg);
}
另外,您正在打印异常对象本身,而不是异常消息。如果只想打印消息,则需要直接致电getMessage()
,否则您将同时获得异常的类型和描述。
更改
System.out.println(\" Caught \" + e);
至
System.out.println(\" Caught \" + e.getMessage());
, 定义新方法时,必须定义其所有功能。如果要使其用作父类方法,则必须调用super
您要么不定义构造函数(只保留默认的-empty-构造函数可用),要么修改构造函数。
ExceptionoftheGods (String msg){
super(msg);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。