如何判断异常是检查还是不检查?

tem*_*ame 5 java exception checked-exceptions unchecked-exception

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

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

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

Eri*_*fer 2

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

重新表述一下引文:如果预期异常会通过各层传播,则将其取消选中。仅检查调用者是否确实可以对此执行某些操作。