我正在尝试以最简单的方式定义自己的异常类,这就是我得到的:
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); } }