是否可以将某些已检查的异常转换为未经检查的异常。
当我阅读文档时 jms,我发现一些方法将已检查的异常转换为未选中。我不再需要使用“抛出”了。这是Java的一个特性吗?
答案 0 :(得分:3)
您还可以将自己的异常从已检查转为未选中:
try {
...
} catch (CheckedException ex) {
throw new UncheckedException(ex);
}
其中虚构的类CheckedException
是由代码在点内引发的已检查的省略,UncheckedException
扩展RuntimeException
或其后代之一。
在没有进入已检查vs未经检查的异常辩论的情况下,我想指出,当您使用抽象层时,转换异常是一个很好的做法,同样,您的异常应该不太具体地了解实现细节。
例如,如果我有一个带有方法save()的接口PDFDocument,它不应该抛出IOException,因为你可以将实现保存到数据库,另一个保存到文件系统,第三个保存到远程站点。相反,您可以创建自己的例外,或者如果适合则使用one of the standard ones。