当我编写一个新的异常类型时,我应该只写出所需的构造函数,还是实现存在于Throwable
中的所有构造函数(并调用它们的super()
)?创建一个新的异常类型 - 写入所有的构造函数还是只写需要的?
想一想,我会说只实施需要的东西(YAGNI - 你不会需要它)。如果我以后需要另一个构造函数,我只需添加它。
例子:
public void MyException extends RuntimeException {
// I only need this constructor
public MyException(Throwable cause) {
super(cause);
}
}