自定义异常类每次都会显示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

回到顶部