【发布时间】:2012-03-30 17:19:39
【问题描述】:
我从各种教程中了解到“如果可以合理地期望客户端从异常中恢复,则将其设为受检异常。如果客户端无法从异常中恢复,则将其设为未受检异常。”
我很想通过一些代码示例来看看前面语句的有效性。 例如
try {
br.readLine();
} catch (IOException e) {
e.printStackTrace();
}
这里,IOException被检查了Exception。那么,当这个异常发生时我应该如何恢复呢?在这里,我排除了异常记录,异常重新抛出任务,因为它们实际上并没有恢复,即使事情正确。那么,这里应该应用什么修改来恢复呢?
如果有办法从中恢复,那么同样的方法可以应用于以下代码:
try{
Integer.parseInt("ghg4");
}catch(NumberFormatException nfe){
}
这里的 NumberFormatException 是一个运行时/未经检查的异常。所以如果有办法从中恢复,那么为什么首先将它声明为运行时异常?
【问题讨论】:
-
该链接+1。我发现 OscarRyz 的评论特别有用
标签: java exception compiler-construction coding-style checked