java - 将异常消息传递给父类,而不使用 throw new exception(); 构造​​ , 消息;

标签 java exception inheritance constructor super

我有这个代码:

public class ExceptionFather extends Exception {}

public class ExceptionSon extends ExceptionFather {
    String someMessage;
    public ExceptionSon () {
        super(someMessage);
    }
}

我的目标是子异常将有自己的固定消息,该消息将自动传递,并且我不必每次抛出它时都在构造函数中写入消息。

问题是,这给了我一个语法错误,指出我必须有一个将消息作为其参数的构造函数。

最佳答案

您必须在 ExceptionFather 类中定义采用 String 参数的构造函数:

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

之后,您将能够在子类ExceptionSon中编写super(yourString)yourString 不能是子实例变量,因为在调用父类(super class)型构造函数之前无法访问它。但在这种情况下,您可以使用静态(类)变量或 String 文字:

class ExceptionSon extends ExceptionFather {
    private static String message = "message";
    public ExceptionSon() {
        super(message); // or just "message"
    }
}

关于java - 将异常消息传递给父类,而不使用 throw new exception(); 构造​​ , 消息;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37839955/

相关文章:

java - java 计算 vector 出现次数

java - 如何与 Hibernate 和 Kotlin 建立正确的 ManyToMany 关系? (获取 BeanCreationException)

java - Swing 物质外观下载

java - 构建网络拓扑

php - 此代码中的变量可见性错误是什么?

c++ - 具有非模板基的模板化类给我一个 LNK2005 错误

java - Spring MVC中的异常处理——异常描述

java - 预期异常时避免空 catch block

java - 在 Java 中,为什么 Exception 类需要在类加载器需要之前可用?

java - 安卓 : Is it possible to inherit from MainActivity class?