一尘不染

异常与异常层次结构中的错误代码

java

您认为可以在异常内使用错误代码来指定错误类型吗?请看下面的代码:

public class MyException extends Exception {
    public static final String ERROR_CODE_INVALID_NAME = "";
    public static final String ERROR_CODE_INVALID_ID = "";
    ...

    private String errorCode;

    public MyException(String message, String errorCode) {
        super(message);
        this.errorCode = errorCode;
    }

    public String getErrorCode() {
        return errorCode;
    }
}

我知道在此示例中使用枚举而不是字符串会更好,但是我实际上担心错误代码的概念。您认为在这里异常层次结构会更好吗?我找不到任何权威来源指出异常中的错误代码是反模式的。谢谢。


阅读 112

收藏
2020-12-03

共1个答案

一尘不染

如果您想根据导致异常(无效名称或无效ID)的原因做出不同的响应(在代码中),那么我建议您使用不同的异常。

如果不是,那么您甚至不需要该getErrorCode()方法,您只需将错误代码添加到异常消息中,该异常将为您提供调试所需的所有信息。

2020-12-03