【发布时间】:2021-01-02 17:29:08
【问题描述】:
我想要一个抽象类InitException 来表示一组类,即StartParameterException、FileNotFoundException 等。我自己定义StartParameterException,但FileNotFoundException 是我导入的标准异常.所以我不能像在我自己的类中那样将extends InitException 添加到它的定义中:
public class StartParameterException extends InitException {
...
}
重点是改变这个:
try {
...
} catch (StartParameterException | FileNotFoundException | InvalidPathException | NullBoardException e) {
System.out.println(e);
System.exit(INIT_ERROR);
}
到这里
try {
...
} catch (InitException e) {
System.out.println(e);
System.exit(InitException.ERROR_CODE);
}
这可能吗?我应该以某种方式使用接口吗?
【问题讨论】:
-
如果你真的打算这样做,那么将
InitException设为一个接口并创建一个实现InitException并扩展FileNotFoundException的异常。但是,您必须捕获FileNotFoundException并重新抛出您自己的异常。我认为您的原始代码没有任何问题。在应用程序的宏大方案中,将多个 init 异常合并为一个异常似乎并不是特别有益。 -
@Paul 这只是为了代码重用,因为我想使用这个确切的部分两次。但似乎这些解决方案只会引入更多的复杂性,并没有真正的合理性。如果有这样的语言功能会很不错。
标签: java exception interface abstract-class