如何使用 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 块中,但没有理由这样做。