如何使用 foreach ordered on exception 继续对下一个元素执行操作?
how to continue performing actions on next element with foreachordered on exception?
只是尝试一个简单的示例来理解使用 foreachordered 进行流式传输时的异常处理。请写下当前元素抛出异常 (1) 时我们如何继续对列表 (20) 的下一个元素执行操作的建议。
try {
List<Integer> list = Arrays.asList(10, 1, 20, 15, 2);
list.stream().forEachOrdered(num->{
if(num>2) {
System.out.println(num);
}else {
int result=num/0;
System.out.println(result);
}
});
}catch(Exception e) {
System.out.println("Exception: "+e);
}
为了继续循环,您需要捕获其中的异常
List<Integer> list = Arrays.asList(10, 1, 20, 15, 2);
list.stream().forEachOrdered(num -> {
if(num > 2) {
System.out.println(num);
} else {
try {
int result = num/0;
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
});
这样当异常被捕获和处理时它不会干扰下一个循环。您当然可以将 if
中的整个条件放入 try-catch 块中,但没有理由这样做。
只是尝试一个简单的示例来理解使用 foreachordered 进行流式传输时的异常处理。请写下当前元素抛出异常 (1) 时我们如何继续对列表 (20) 的下一个元素执行操作的建议。
try {
List<Integer> list = Arrays.asList(10, 1, 20, 15, 2);
list.stream().forEachOrdered(num->{
if(num>2) {
System.out.println(num);
}else {
int result=num/0;
System.out.println(result);
}
});
}catch(Exception e) {
System.out.println("Exception: "+e);
}
为了继续循环,您需要捕获其中的异常
List<Integer> list = Arrays.asList(10, 1, 20, 15, 2);
list.stream().forEachOrdered(num -> {
if(num > 2) {
System.out.println(num);
} else {
try {
int result = num/0;
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
});
这样当异常被捕获和处理时它不会干扰下一个循环。您当然可以将 if
中的整个条件放入 try-catch 块中,但没有理由这样做。