因此据说它只能捕获您无法预测或例外的例外情况。
因此,例如,IOExceptions而不是FileNotFoundException(因为这个单例可以通过简单的文件检查来处理,以避免使用异常作为流控制)。
这是我对这个主题的理解,如果我错了,请纠正我。
然而,这提出了一个问题....为什么像FileNotFoundException这样的异常可用?
由于
答案 0 :(得分:2)
考虑在检查文件系统和执行可能导致异常的操作之间文件系统上删除文件的情况。这似乎不太可能,但这种事情会发生。
答案 1 :(得分:2)
您应该捕获可以处理的异常。你的第一句话有点偏僻,可能是导致你混淆的原因。
“因此据说它只能捕获您无法预测或例外的例外情况。”
这应该是
“因此,据说只有在你无法预测或特殊的情况下抛出例外情况。”
因此,如果你可以处理FileNotFoundException,那么你应该抓住它。有一些例外可以扩展IOException,当然,你不能(不想?)处理所有这些异常。
答案 2 :(得分:0)
您必须区分最佳做法和绝对要求。在尝试访问文件之前,最好先检查文件。但是,这不能真正实施。由于在访问文件之前存在绝对要求文件存在,因此框架将抛出异常以强制执行此条件。
在理想的世界中,没有例外,因为没有错误,所有程序和网络(以及用户!)都绝对完美。