Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该生成异常消息吗?_Java_Exception - Fatal编程技术网

Java 我应该生成异常消息吗?

Java 我应该生成异常消息吗?,java,exception,Java,Exception,在我的示例中,我应该从linkparameter生成异常消息,还是我的构造函数应该采用消息参数 类ReadFromNotConnectedInputException扩展了RuntimeException{ 私有字符串链接; public ReadFromNotConnectedInputExceptionfinal字符串链接 { this.link=link; } 公共字符串getLink { 返回链接 } 公共字符串getMessage { return String.format无法读取链

在我的示例中,我应该从linkparameter生成异常消息,还是我的构造函数应该采用消息参数

类ReadFromNotConnectedInputException扩展了RuntimeException{ 私有字符串链接; public ReadFromNotConnectedInputExceptionfinal字符串链接 { this.link=link; } 公共字符串getLink { 返回链接 } 公共字符串getMessage { return String.format无法读取链接\%\,链接未连接,链接; } }
您应该接受消息参数并调用超级构造函数

您应该接受消息参数并调用超级构造函数

IMO如果异常是API的一部分,那么您应该在构造函数中获取消息参数并将其传递给super


这样做的主要优点是,您可以更改来自不同模块的消息格式,如果您保持固定格式,那么所有消息都将使用相同的格式

IMO如果异常是API的一部分,那么您应该在构造函数中获取消息参数并将其传递给super


这样做的主要优点是,您可以更改来自不同模块的消息格式,如果您保持固定格式,那么所有消息都将使用相同的格式

由于您选择了RuntimeException,这意味着您不打算在本地处理它,而是在堆栈中的某个更高级别上处理它,在那里您可以处理许多不同的异常


在这种情况下,将不会涉及任何特殊逻辑;您将在日志文件中写入一个错误条目并进行清理。因此,一个简单的消息属性比一个单独的字符串属性+一个复杂的getMessage实现更适合这项工作。

因为您选择了RuntimeException,这意味着您不打算在本地处理它,而是在堆栈的某个更高级别上处理它,处理许多不同的异常


在这种情况下,将不会涉及任何特殊逻辑;您将在日志文件中写入一个错误条目并进行清理。因此,一个简单的消息属性比一个单独的字符串属性+一个复杂的getMessage实现更适合这个账单。

我将按照以下方式编写它。如果我要努力创建一个异常,我会使它成为一个选中的异常

class ReadFromNotConnectedInputException extends RuntimeException {
    private final String link;

    public ReadFromNotConnectedInputException(final String link) {
        super("Cannot read from link \"" + link + "\", link not connected.");
        this.link = link;
    }

    public String getLink() {
        return link
    }
}


我会这样写。如果我要努力创建一个异常,我会使它成为一个选中的异常

class ReadFromNotConnectedInputException extends RuntimeException {
    private final String link;

    public ReadFromNotConnectedInputException(final String link) {
        super("Cannot read from link \"" + link + "\", link not connected.");
        this.link = link;
    }

    public String getLink() {
        return link
    }
}


未定义inputName。未定义inputName。读取后,我选择了未检查的异常。你建议不要创建我自己的未检查异常吗?即使源是C++,我决定按4的格式对消息进行格式化。在任何一种情况下,您希望捕获特定的异常,在这种情况下,它应该是一个特定于捕获时将发生什么的已检查异常,或者您不希望捕获它,在这种情况下,它将在某个地方的日志中结束,并且您使用的类并不重要。i、 你可以重用一个现有的。阅读后,我选择了一个未检查的异常。你建议不要创建我自己的未检查异常吗?即使源是C++,我决定按4的格式对消息进行格式化。在任何一种情况下,您希望捕获特定的异常,在这种情况下,它应该是一个特定于捕获时将发生什么的已检查异常,或者您不希望捕获它,在这种情况下,它将在某个地方的日志中结束,并且您使用的类并不重要。i、 你可以重复使用现有的一个。