Bla*_*man 0 java file-io servlets
我有一个简单的servlet,如果它有一个查询参数'hello',我写一个文件,因为这是一个测试,我想在网页上也显示错误.
IntelliJ抱怨我没有捕获IOException,不知道出了什么问题:
private static void WriteToFile(String filePath, String fileName, String fileData) {
FileWriter writer = null;
try {
writer = new FileWriter(fileName);
writer.write(fileData);
} catch(IOException ex) {
} finally {
if(writer != null) {
writer.close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
另外,在我的例外情况中,我注意到大多数人在网上写道:
如何将错误输出到网页?
IOException当你writer.close();在finally块中调用时,你没有捕获.
你也完全吞下IOException了主代码中抛出的任何内容,这是一个非常糟糕的主意.如果出现问题,你将不知道发生了什么.
我个人建议您让该方法将异常抛给调用者:
private static void writeToFile(String filePath, String fileName,
String fileData) throws IOException {
FileWriter writer = new FileWriter(fileName);
try {
writer.write(fileData);
} finally {
writer.close();
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果try块抛出一个异常,并在finally块呢,你会有效地"丢失"的原始异常.您可能希望在关闭时禁止抛出异常.
或者只是使用Guava,无论如何都要使用它的Files类更简单.
或者,如果您使用的是Java 7,则可以使用try-with-resources语句.
(我注意到你忽略filePath了 - 为什么?)
| 归档时间: |
|
| 查看次数: |
336 次 |
| 最近记录: |