自定义异常类每次都会显示Unreachable catch块
我创建了一个想要在我的应用程序中使用的自定义Exception类:
public class MyException extends Exception { private static final long serialVersionUID = -2151515147355511072L;
private String message = null;
public MyException() {
super();
}
public MyException(String message) {
super(message);
this.message = message;
}
public MyException(Throwable cause) {
super(cause);
}
@Override
public String toString() {
return message;
}
@Override
public String getMessage() {
return message;
}
}
但是,当我尝试使用此类时,如下所示,它给出了编译时错误。
try { System.out.println("this");
} catch (MyException e) {
// TODO: handle exception
}
编译时错误:
Unreachable catch block for MyException . This exception is never thrown from the try statement body
我的问题是,如果要在所有构造函数中扩展Exception类并调用super,那么为什么会发生此错误?
回答:
显然,您没有做 任何 会产生的 事情MyException
。首先编写一个带有签名的方法throws
MyException,调用它,然后解决您的问题。这是一个例子:
public void someMethod()throws MyException{
//some condition here.
//if met..
throw new MyException("cause");
}
并将您的主要代码修改为:
try { someMethod();
System.out.println("this");
} catch (MyException e) {
// TODO: handle exception
}
以上是 自定义异常类每次都会显示Unreachable catch块 的全部内容, 来源链接: utcz.com/qa/424662.html