【发布时间】:2016-08-22 23:41:43
【问题描述】:
我正在尝试使用 Java Streams 写入文件。据我所知,只要向前抛出异常,您就不必捕获异常。 然而,编译器会抛出一个错误(在 stream.foreach()... 的行上)并说
错误:未报告的异常IOException;必须被抓住或宣布被扔掉
有人能解释这是为什么吗? (我只对使用流的解决方案感兴趣)
public void save(String file, ArrayList<String> text) throws IOException {
FileWriter fw = new FileWriter(file);
text.stream().forEach(x->fw.write(x +"\n"));
fw.close();
}
Netbeans 建议这样做,但有更短的方法吗?
public void save(String file, ArrayList<String> text) throws IOException {
FileWriter fw = new FileWriter(file);
text.stream().forEach(x->{
try {
fw.write(x +"\n");
} catch (IOException ex) {
...
}
});
fw.close();
}
【问题讨论】:
-
是的,我的回答基本上包含友好狗的回答。除了
RuntimeExeptions,你不能忽略任何东西 -
@Thorvason 这是不正确的。您也可以忽略
Error的子类。见docs.oracle.com/javase/tutorial/essential/exceptions/…
标签: java compiler-errors java-8 java-stream