Java:使方法在异常后继续
我有一些从Excel文件读取的代码,在每一行之后使用逻辑层的addValue方法将数据添加到数据库中 现在我有一个循环,它穿过行,还有一个穿过单元格。 从Excel中读取表行后,它会执行addValue方法,如果出现错误,该方法本身会引发异常Java:使方法在异常后继续,java,exception,Java,Exception,我有一些从Excel文件读取的代码,在每一行之后使用逻辑层的addValue方法将数据添加到数据库中 现在我有一个循环,它穿过行,还有一个穿过单元格。 从Excel中读取表行后,它会执行addValue方法,如果出现错误,该方法本身会引发异常 程序现在所做的是,当第一个异常出现时,它停止,例如,如果损坏的数据位于Excel文件的中间,它会导入所有的内容,直到达到损坏的数据并停止。 捕获addValue引发的异常后,如何使其继续 try { //
程序现在所做的是,当第一个异常出现时,它停止,例如,如果损坏的数据位于Excel文件的中间,它会导入所有的内容,直到达到损坏的数据并停止。
捕获addValue引发的异常后,如何使其继续 try {
// abfangen des ersten durchlaufes
if (id == -1) {
} else {
/*
* java.lang.System.out.println(name);
* java.lang.System.out.println(id);
* java.lang.System.out.println(value);
* java.lang.System.out.println(comment);
*/
java.lang.System.out.println("value"+ value);
sysInterface.addValue(ident, name, value, comment);
workbook.close();
}
} catch (LogicException | IOException e) {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Error Dialog");
alert.setHeaderText("Adding Value unsuccessful!");
alert.setContentText(e.getMessage()
+ " Import aborted. \nClassificationNumber "
+name+ " has to be in Database before importing.");
alert.showAndWait();
return;
}
}
此块在循环中运行的次数与Excel表的行数相同。如果该块在循环中,那么我假设您真正想要说的是“尝试此操作,但捕获任何异常,然后跳过有问题的记录并继续循环”
如果是这样,只需将“return”语句更改为“continue”。Continue关键字表示“跳过循环这一步中的其余执行,转到下一步。不要忘记,您还有“finally”情况,在调用并捕获错误后,您可以从中断处重复 简短示例:
您认为
return;
行正在做什么?如果您遇到IOException,您不应该尝试继续读取。如果文件无法读取,您认为第二次尝试可以读取它是什么原因?建议继续
这是不明智的。继续
中断了“流程”通过该方法,并有效地禁用IDE的自动重构。在编写Java的15年多时间里,我从未需要使用continue
。OP展示的更好的解决方案是删除return
语句。就是这样!谢谢:)我第一次也想到了类似的事情,但似乎有点想得太远了。“continue”关键字成功了。无论如何,谢谢:)正如另一位用户早些时候建议的,“继续”可能会导致IDE出现问题。如果答案对你有帮助,我请你批准。
public foo bar(){
try{
// try here
} catch(Exception here){
//handle here
}
finally{
/*
* you can return to your loop after the exception has been caught, from
* here by calling it again, recursively */
}
}