如何在Java中定义自定义异常类,这是最简单的方法?
我试图以最简单的方式定义自己的异常类,这就是我得到的:
public class MyException extends Exception {}
public class Foo {
public bar() throws MyException {
throw new MyException("try again please");
}
}
Java编译器是这样说的:
cannot find symbol: constructor MyException(java.lang.String)
我觉得这个构造函数必须从^{
# 1 楼答案
异常类有两个构造函数
public Exception()
——这构造了一个异常,没有任何附加信息。异常的性质通常是从类名推断出来的李>public Exception(String s)
--构造一个带有指定错误消息的异常。详细信息是描述此特定异常的错误条件的字符串李># 2 楼答案
如果在Eclipse中使用new class对话框,只需将Superclass字段设置为
java.lang.Exception
,并选中“Constructors from Superclass”,它将生成以下内容:针对以下关于不在defualt构造函数中调用
super()
的问题,Oracle有this to say:# 3 楼答案
我定义的一个典型的自定义异常如下:
我甚至用Eclipse创建了一个模板,这样我就不用一遍又一遍地写所有的东西了
# 4 楼答案
# 5 楼答案
不,您不需要“继承”非默认构造函数,您需要在类中定义一个接受字符串的构造函数。通常,在构造函数中使用
super(message)
来调用父构造函数。例如,像这样:# 6 楼答案
Java平台的Inheritance文章解释了这一点的原因,文章说: