我正在尝试以最简单的方式定义自己的异常类,这就是我得到的:
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)
我有一种感觉,该构造函数必须从继承java.lang.Exception,不是吗?
java.lang.Exception
不,你没有“继承”非默认构造函数,需要在类中定义一个采用String的构造函数。通常,你super(message)在构造函数中使用来调用父构造函数。例如,像这样:
super(message)
public class MyException extends Exception { public MyException(String message) { super(message); } }