Java 如何继承RuntimeException类?
我有两个选择:Java 如何继承RuntimeException类?,java,design-patterns,exception,Java,Design Patterns,Exception,我有两个选择: public class SyntaxException extends RuntimeException { private String msg; public SyntaxException(String m) { this.msg = m; } public String getMessage() { return "Invalid syntax: " + this.msg; } } 及 如果我要考虑代码的可维护性和可扩展性,我会选择
public class SyntaxException extends RuntimeException {
private String msg;
public SyntaxException(String m) {
this.msg = m;
}
public String getMessage() {
return "Invalid syntax: " + this.msg;
}
}
及
如果我要考虑代码的可维护性和可扩展性,我会选择哪一个。第一个看起来像是重新发明轮子 另外,考虑和,似乎
getMessage()
方法和msg
属性不会给类带来额外的值。此外,如果其他人在阅读您的代码时遇到它,我猜他/她会说或想“他/她为什么要重新定义这些东西”
如果将来需要自定义的
getMessage()
方法,那么就编写它。第二种方法。因为基类已经有了一条消息,所以使用它是有意义的 使用第二个。RuntimeException
和继承类的构造函数的参数都是错误消息,因此没有理由复制代码中的RuntimeException
已经提供的功能。不是第一个
如果“无效语法:”是消息的一部分,则您可以使用:
public class SyntaxException extends RuntimeException {
public SyntaxException(String wrongSyntax) {
super("Invalid syntax: " + wrongSyntax);
}
}
但至少这取决于一个事实:你是否需要i18n
public class SyntaxException extends RuntimeException {
public SyntaxException(String wrongSyntax) {
super("Invalid syntax: " + wrongSyntax);
}
}