1

为什么不建议使用 try...catch 块来处理未经检查的异常?为什么我们只需要通过一些条件检查来避免它们?

4

1 回答 1

0

Java 异常模型的一个基本限制是,如果一个方法抛出一个异常,它的调用者通常不可能知道它周围的环境。如果要计算的代码x % y测试是否y为零,它可以知道DivideByZeroException发生 a 的确切情况,并适当地处理这种情况。如果条件是通过捕获异常来处理,程序员可能会期望异常是由于尝试计算x % y何时y是零,但也会捕获因意外原因发生的除零异常(例如,调用一个应该对集合进行分区的方法,但有一个错误导致它尝试将集合细分为零块)。捕获异常时没有办法指定只希望捕获由于预期原因而引发的异常。在实践中,已检查和未检查的异常都有同样的问题,但在意外情况下抛出未检查的异常更为常见。

于 2014-08-23T18:53:41.883 回答