Java 我应该生成异常消息吗?
在我的示例中,我应该从linkparameter生成异常消息,还是我的构造函数应该采用消息参数 类ReadFromNotConnectedInputException扩展了RuntimeException{ 私有字符串链接; public ReadFromNotConnectedInputExceptionfinal字符串链接 { this.link=link; } 公共字符串getLink { 返回链接 } 公共字符串getMessage { return String.format无法读取链接\%\,链接未连接,链接; } }Java 我应该生成异常消息吗?,java,exception,Java,Exception,在我的示例中,我应该从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、 你可以重复使用现有的一个。