正确处理filenotfoundexception Java的方法

时间:2017-10-28 16:41:14

标签: java exception

我试图找到在我的代码中发生的事件中处理fileNotFoundException的正确方法。我目前抓住并重新抛出异常但不确定这是否是最佳方式。我希望我的函数在无法找到文件的情况下停止运行,目前这种情况不会发生。实现这一目标的典型方法是什么?

任何提示/见解都会很棒,提前谢谢。

        BufferedReader br = null;
        List<String> names = null;
        try {
            br = new BufferedReader(new FileReader("src/files/names.csv"));
        } catch (FileNotFoundException e) {
            try {
                throw e;
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
        }

2 个答案:

答案 0 :(得分:0)

有几种处理此类错误的方法。以下是一些:

  1. 抛出未经检查的异常。它必须被其他人抓住,而且由于它没有被检查,他可能不知道它。并不总是最好的主意,但对某些情况很有用:

    throws FileNotFoundException
  2. 使用return删除您的方法,以便来电者必须处理此案例。

  3. 在捕获异常后只需System.exit(),或者甚至在适当情况下使用DECLARE @columns VARCHAR(8000) SELECT @columns = COALESCE(@columns + ',[' + cast(Value as varchar) + ']', '[' + cast(Value as varchar)+ ']') FROM Table1 GROUP BY Value DECLARE @query VARCHAR(8000) SET @query = 'with Priorites as (select a.Name,b.Value,b.Cost from Table2 a left join Table1 b on a.Priority =b.id) SELECT * FROM Priorites PIVOT ( MAX(Cost) FOR [Value] IN (' + @columns + ') ) AS p' EXECUTE(@query)

  4. 这三种方法都将停止执行当前功能。

答案 1 :(得分:0)

try catch通常用于避免抛出异常。在你的情况下

void foo() throws FileNotFoundException {
    BufferedReader br = null;
    List<String> names = null;
    br = new BufferedReader(new FileReader("src/files/names.csv"));
}

与示例代码完全相同。

如果您想避免将异常抛给调用方,请使用try catch并退出应用程序调用{​​{1}}

System.exit(0)