我有这段代码:
public class ExceptionFather extends Exception {}
public class ExceptionSon extends ExceptionFather {
String someMessage;
public ExceptionSon () {
super(someMessage);
}
}
我的目标是子异常将有自己的固定消息将自动传递,每次抛出它时我都不必在构造函数中写入消息。
问题是这给了我一个语法错误,说我必须有一个构造函数,将消息作为参数。
答案 0 :(得分:2)
您必须定义在String
类中使用ExceptionFather
参数的构造函数:
class ExceptionFather extends Exception {
public ExceptionFather(String message) {
super(message);
}
}
之后,您将能够在子类super(yourString)
中编写ExceptionSon
。 yourString
不能是子实例变量,因为在调用超类型构造函数之前无法访问它。但在这种情况下,您可以使用静态(类)变量或String
文字:
class ExceptionSon extends ExceptionFather {
private static String message = "message";
public ExceptionSon() {
super(message); // or just "message"
}
}