当前位置: 首页 > 面试题库 >

自定义异常类每次都会显示Unreachable catch块

黄君博
2023-03-14
问题内容

我创建了一个想要在我的应用程序中使用的自定义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抛出异常与自定义异常类应用示例,包括了Java抛出异常与自定义异常类应用示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java抛出异常与自定义异常类。分享给大家供大家参考,具体如下: 异常处理常用方法: 常用的异常处理方法有: 一、try()catch() 语句 二、throw / throws 语句 三、自定义异常类 用途: 众所周知,当程序运行过程中,如果遇

  • 我正在完成一个视频应用程序,我在离开视频activity时显示间隙广告。我只想每X分钟显示一次,但似乎每次我离开那个屏幕时它都在显示。 这是我的activity密码。 onCreate: onbackpressed: 当然,在admob中是这样设置的: 注意:我的应用程序没有发布,所以它正在显示“预览”o“示例”。我正在使用我的广告单元ID: 谢谢,

  • 如果 Java 提供的内置异常类型不能满足程序设计的需求,这时我们可以自己设计 Java 类库或框架,其中包括异常类型。实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。 自定义异常的语法形式为: 在编码规范上,一般将自定义异常类的类名命名为 XXXException,其中 XXX 用来代表该异常的作用。 自定义异

  • 我创建了一个min和max指令,用于检查输入是否在范围之间。我还有一个ng模式验证。我正在使用ng消息显示我的验证。我遇到一个问题,即即使用户输入了正确的模式,“模式”的验证消息仍在显示。我只想显示范围超出范围的验证。这是html 这里是指令 这是柱塞

  • 更新2添加名称作为字段,而不是段塞,并添加the_title()只需给我一个页面标题的回声... 更新Jonnhyd23的代码非常有效!!谢谢有没有一种方法可以使术语变得动态?就像标题是阿姆斯特丹一样,我能做一些类似于