如何在Java中定义自定义异常类,最简单的方法?

2022-08-31 05:15:27

我试图以最简单的方式定义我自己的异常类,这就是我得到的:

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继承,不是吗?


答案 1

不,您不会“继承”非默认构造函数,您需要定义在类中采用 String 的构造函数。通常,在构造函数中使用来调用父构造函数。例如,如下所示:super(message)

public class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

答案 2

我定义的典型自定义异常如下所示:

public class CustomException extends Exception {

    public CustomException(String message) {
        super(message);
    }

    public CustomException(String message, Throwable throwable) {
        super(message, throwable);
    }

}

我甚至使用Eclipse创建了一个模板,这样我就不必一遍又一遍地编写所有的东西。


推荐