首页 > 解决方案 > 使用 java 8 foreach 循环调用方法和处理异常

问题描述

如果满足条件,我正在执行下面的代码我正在生成异常,但是即使我会得到异常,我也想跳过该循环并希望执行保留代码,所以有什么办法吗?

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);
        }



    }

}

标签: javajava-8java-stream

解决方案


将你的try/移动catch到循环内?

    items.forEach(item -> {
        try {
            getData(item);
        } catch (Exception e) {
            e.printStackTrace();
        }
    });

推荐阅读