2

据我所知,当您遇到应用程序可以从中恢复的错误时,您会使用已检查的异常。但是,我的应用程序中出现的一些错误不符合 Sun 已经提出的异常。是否可以创建特定于域的检查异常(不好的做法?)?例如: DuplicateQuestionException --> 当应用程序收到两个相同的问题时抛出。这是我的应用程序可以恢复的情况。

4

3 回答 3

2

是的,这是一个很好的做法。如果它在您的域中没有意义,请不要尝试强制使用现有异常。

于 2012-11-06T13:25:02.913 回答
1

是的,最好创建自己的异常,而不是使用原始异常。当您将创建自己的异常时,不要忘记异常层次结构。

于 2012-11-06T13:42:00.703 回答
1

是的,当应用程序可以合理地恢复时使用检查异常是很好的,并且当 Java 不提供合适的异常时使用自定义检查异常是完全合理的。

来自 Josh Bloch 的 Effective Java 第二版的 Strait:

来自第 58 条关于抛出已检查异常的内容:

“决定是使用已检查异常还是未检查异常的基本规则是:在可以合理预期调用者从中恢复的情况下使用已检查异常。”

来自关于扩展现有例外的第 60 项:

“此外,如果您想添加更多故障捕获信息,请随意对现有异常进行子类化。”

于 2012-11-06T14:26:28.577 回答