java - 自定义异常类每次都显示 Unreachable catch block

标签 java 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
}

关于java - 自定义异常类每次都显示 Unreachable catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22116175/

相关文章:

java - 无法使用 ExecutorService 和 Callables 捕获特定异常?

c# - 如何从 C# Windows 应用程序项目调用 C++ dll

Java:数组的可能组合

java - 如何在 Android 的 Receiver/Service 中获取 CheckBoxPreference 值?

java - Java 消息服务 (JMS) 与 PHP 上的结构相似或相同吗?

java - leJOS 忽略我的循环

java - 我怎样才能解决java.lang ."illegalStateException" "StringIndexOutOfBound" "InvocationTargetException"

flutter - 处理异常 HTTP 请求抖动

java - 什么是断言错误?在哪种情况下我应该从我自己的代码中抛出它?

java - 如何在 JSP 页面中打印错误堆栈跟踪?