我有一个从Excel文件中读取的代码,在每一行之后使用逻辑层中的addValue方法将数据添加到数据库。
现在我有一个循环通过行和一个通过细胞的循环。 从Excel中读取表行后,它会执行addValue方法,如果出现问题,它会抛出异常。
程序现在所做的是它在出现第一个异常时停止,例如,如果损坏的数据位于该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表中的行数相同。
答案 0 :(得分:2)
不要忘记您还有“ 最终 ”的情况,其中在之后进行调用且错误为< em>抓住了,你可以从你离开的地方重申一下。
update_category
答案 1 :(得分:0)
如果块在一个循环中,那么我假设你真正想要的是说“尝试这个,但抓住任何异常,然后跳过违规记录并继续循环”。
如果是这种情况,只需将“return”语句更改为“continue”即可。 Continue关键字表示“在循环的这一步骤中跳过剩下的执行,然后转到下一步。