IOException覆盖FileNotFoundException时捕获FileNotFound和IOException的目的是什么?
示例:
try {
pref.load(new FileInputStream(file.getAbsolutePath()));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
而不是:
try {
pref.load(new FileInputStream(file.getAbsolutePath()));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
是否只是在抛出FileNotFoundException时启用不同的代码?或者有不同的原因吗?
编辑:可以抛出什么样的IOException的几个例子? (除了FileNotFoundException)
答案 0 :(得分:5)
它允许您专门处理该案例。也许您的应用程序需要在找不到文件时执行某些操作。例如通知用户没有找到文件,而不仅仅是一般错误。
所以基本上,是的,它允许在抛出FileNotFoundException时专门执行不同的代码。
答案 1 :(得分:0)
必须这样做,因为您为特定的FileNotFound Exception错误分配了任务。 如果您执行IOException,则用户可能无法获得正确的信息。所以以不同的方式做,用户才能确切地知道代码中发生了什么。