【发布时间】:2018-08-03 14:19:53
【问题描述】:
如果条件满足我正在执行下面的代码我正在生成异常,但是即使我会得到异常我想跳过那个循环并想要执行保留代码所以有什么办法吗?
public class Test {
public static void main(String[] args) {
List<String> items = new ArrayList<>();
items.add("1");
items.add("2");
items.add("3");
items.add("4");
items.add("5");
try {
items.forEach(item -> getData(item));
} catch (Exception e) {
e.printStackTrace();
}
}
public static void getData(String item) {
System.out.println("====getData method called" + item + "====");
if (item.equals("1")) {
System.out.println(1 / 0);
}
}
}
【问题讨论】:
-
不清楚。即使该行之前的 3 行代码抛出异常,您是否要执行
System.out.println("execute remaining code");行?如果是这样,捕获异常。如果即使getData(item)抛出异常,您也想执行循环的剩余迭代,那么再一次:将对 getData() 的调用包装在 try 块中,并捕获异常。 -
如果你在你的循环之外捕捉到异常,你已经退出了循环。如果你在循环内部捕获异常(例如在
getData内部),你可以继续循环。 -
我只想忽略异常并执行剩余代码的循环
-
@Tejal 检查答案。它应该适合你。
标签: java java-8 java-stream