我从各种教程中学到:“如果客户端可以合理地预期从异常中恢复,那么将其设置为已检查的异常。如果客户端无法从异常中恢复,则将其设置为未检查的异常。”
我真的想通过一些代码示例来看到前面语句的有效性。 例如:
try {
br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
在这里,IOException是一个受检异常。那么当出现这个异常时,我应该如何恢复呢?在这里,我排除了异常记录和异常重新抛出任务,因为它们实际上并没有恢复即使事情变得正确。那么,应该对此进行哪些修改以便从中恢复过来呢?
如果有一种方法可以从中恢复,那么同样的方法也可以应用于以下代码:
try{
Integer.parseInt("ghg4");
}catch(NumberFormatException nfe){
}
在这里,NumberFormatException是一个运行时/未检查的异常。那么,如果有一种方法可以从中恢复,为什么它首先被声明为运行时异常呢?