【问题标题】:Why Use FileNotFoundException When Covered by IOException为什么在被 IOException 覆盖时使用 FileNotFoundException
【发布时间】:2013-07-12 05:30:34
【问题描述】:

当 FileNotFoundException 被 IOException 覆盖时,捕获 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)

【问题讨论】:

  • “如果抛出 FileNotFoundException,是否只是为了让不同的代码能够被执行?” 是!!!

标签: java try-catch ioexception filenotfoundexception


【解决方案1】:

它允许您专门处理这种情况。当找不到文件时,您的应用程序可能需要做一些特定的事情。例如通知用户找不到文件,而不仅仅是一般错误。

所以基本上,是的,它允许在抛出 FileNotFoundException 时专门执行不同的代码。

【讨论】:

    【解决方案2】:

    必须这样做,因为您为特定的 FileNotFound Exception 错误分配了任务。 如果您使用 IOException,用户可能无法获得正确的信息,那里出了什么问题。这样以不同的方式进行,用户可以确切地知道代码中发生了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-28
      • 2011-09-22
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2014-06-05
      相关资源
      最近更新 更多