6

我正在阅读 Java 中的已检查与未检查异常以及何时使用它们:

底线是:如果可以合理地期望客户端从异常中恢复,则将其设为已检查异常。如果客户端无法从异常中恢复,请将其设为未经检查的异常。

客户端无法恢复的一个例子是除以零,他们可以恢复的东西是 FileNotFound 异常。我还没有看到区别。为什么你可以捕获一个并记录错误,但不能捕获另一个并记录错误?是什么使某些东西可以合理地恢复?你不能在所有情况下都发现错误(从而恢复)吗?

4

2 回答 2

2

引用的意思是这样的:如果客户端代码无法从问题中恢复,它需要让异常传播到更高层。如果为此使用受检异常,则需要通过所有调用层声明受检异常而没有任何好处。

换个说法:如果异常预计会通过层传播,请取消选中。仅检查调用者是否可以对其执行某些操作。

于 2021-03-04T06:51:05.497 回答
0

当检查异常并发生异常时,很容易排查异常原因。如果我们不使用受检异常,就很难找出异常的原因。检查异常给出了预期异常的概念。

于 2021-03-04T05:49:59.557 回答