我正在使用Java8中引入的Stream API,为列表中的每个字符串运行一个方法。
public boolean initFile() throws IOException
{
if (this.outFile.exists()) {
this.outFile.delete();
}
return this.outFile.createNewFile();
}
public void writeStringToFile(String str, boolean addNewLine) throws IOException
{
if (this.mode != FileMode.READ) {
if (this.initFile()) {
FileWriter fileWriter;
if (this.mode == FileMode.APPEND)
fileWriter = new FileWriter(outFile.getAbsolutePath(), true);
else
fileWriter = new FileWriter(outFile.getAbsolutePath());
fileWriter.write(str);
if (addNewLine)
fileWriter.write("\n");
fileWriter.close();
} else {
throw new IOException("IO Error: The file could not be initialized.");
}
} else {
throw new IOException("Cannot write to a file with the mode FileMode.READ");
}
}
public void writeListToFile(List<String> strings, boolean addNewLine) throws IOException
{
strings.stream().forEach(s -> this.writeStringToFile(s, addNewLine)); // Unhandled IOException from writeStringToFile
}
如您所见,方法签名状态为抛出所有IOExceptions,流中的writeToString方法可能抛出IOException。但是,Java编译器给了我一个错误,指出流线上有一个未处理的IOException。
为什么流中的异常不会像方法中的其他异常一样被抛出?有没有什么方法可以在不在forEach lambda表达式中添加try-catch语句的情况下解决这个问题?
您必须在writeListToFile方法中使用try catch,如下所示:
public void writeListToFile(List<String> strings, boolean addNewLine) throws Exception {
strings.stream().forEach(s -> {
try {
writeStringToFile(s, addNewLine);
} catch (IOException ex) {
//you can Log it immediately or throw ex;
Logger.getLogger(C.class.getName()).log(Level.SEVERE, null, ex);
}
});
// Unhandled IOException from writeStringToFile
}
为什么?看看这一点s->{}。这里{}表示编译器创建新接口(使用者)
void forEach(Consumer<? super T> action);
新类实现了这个接口,并将s参数传递给它的accept方法。你能在你的方法中抛出新类的异常吗?不,所以你必须试着抓住每一个foreach项目
对于精度数学,只要可能,就会使用给定的准确值数值。例如,在比较中所用的数值与给定的值准确相同,无任何变化。在严格的SQL模式下,对于插入具有准确数据类型(DECIMAL或整数)的列的INSERT操作,如果值在列的允许范围内,将插入具有准确值的数值。检索时,所获得的值与插入的值应是相同(如果未采用严格模式,允许INSERT执行截短操作)。 对数值表达式的处理取决于表达式包含的值的类型: ·如果存在任
我正在尝试使用python中的正则表达式。我构建了正则表达式,如下所示。我知道用于匹配搜索字符串的开头。我已使用包含多个的匹配模式构建框架,但我不确定将如何尝试匹配搜索字符串中的模式。 我预计会引发错误,关于无效的正则表达式,但它不会引发任何错误,也不会返回任何匹配项。 所以,我的问题是或是有效的正则表达式吗?
寻找一个java正则表达式函数,如果数组元素列表中的特殊字符出现在前面或后面,则返回true 2-返回False如果任何alpha字符之前和之后从我的数组元素列表我的数组元素wordsList={"TIN","tin"}输入: 1-CardTIN是1111 2-Card-TIN:2222 3-cardtinis3334-Card@TIN@4444 5-CardTIN@55556-TINis9999
问题内容: 有没有办法让AngularJS在模型数据中评估表达式? HTML: 模型: 最终结果将是:。 问题答案: 您可以使用该服务来插值字符串… JSFiddle
我有metohod myservice#create,它抛出CustomException。我在可选#map中调用此方法,如下所示: 当我用引起异常的参数调用这个方法时,就会捕获CustomException,但结果是操作成功,状态为200。如何在lambda中处理此异常并返回异常消息?
我对lambda表达有意见。我的代码: 有可能吗?我只能使用java.util.function。我尝试从“lambda”中删除try catch,而我“main”方法应该正在捕获异常。