我试图找到在我的代码中发生的事件中处理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();
}
}
答案 0 :(得分:0)
有几种处理此类错误的方法。以下是一些:
抛出未经检查的异常。它必须被其他人抓住,而且由于它没有被检查,他可能不知道它。并不总是最好的主意,但对某些情况很有用:
throws FileNotFoundException
使用return
删除您的方法,以便来电者必须处理此案例。
在捕获异常后只需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)
。
这三种方法都将停止执行当前功能。
答案 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)