当前位置: 首页 > 知识库问答 >
问题:

在try/catch块中捕获异常后继续执行循环

楮景明
2023-03-14
            try {
                loop: while (iterator.hasNext())  // as excetion is on this line excetion will be catch by catch_2
                {
                    try {
                        Result res = (Result) iterator.next();
                        list.add(res);
                    } catch (Exception e) {                    // catch_1
                        e.printStackTrace();
                    }
                }
            } catch (Exception e) {                            // catch_2
                // goto start of the loop
                continue loop;
            }

Iterator<UserProvisioning> iterator = beans.iterator();
            while (iterator.hasNext()) {
                try {
                    UserProvisioning userProvisioning = (UserProvisioning) iterator.next();
                    System.out.println(userProvisioning.getFIRST_NAME());
                    list.add(userProvisioning);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    logger.error("Error occured...)
                }
            }
java.lang.RuntimeException: com.opencsv.exceptions.CsvRequiredFieldEmptyException: Number of data fields does not match number of headers.

EDITiterator.hasnext()应该返回true或false,但它的抛出错误

共有1个答案

陶征
2023-03-14

如果在循环中放置一个try-catch块,它将继续循环到最后,除非您跳出它

for(Iterator<UserProvisioning> iter = beans.iterator(); iter.hasNext();) {
  try{
    UserProvisioning userProvisioning = iter.next();
    System.out.println(userProvisioning.getFIRST_NAME());
    list.add(userProvisioning);
  } catch(Exception ex) {
    logger.warn("An issue occurred when looping through user provisionings: " + ex.getMessage());

  }
}

上面的代码将设置一个迭代器并循环遍历它。如果发生异常,它将记录并继续循环,因为没有调用break

另外,由于您知道迭代器是什么类型,所以在调用iter.next()时不需要强制转换它

 类似资料:
  • 问题内容: 一旦在此代码中捕获到异常,该方法就会运行,但是一旦我输入一个数字,程序就会关闭,并显示“生成成功”消息。一旦发生异常,是否有任何方法可以返回while循环? 问题答案: 将 try / catch 放入 while循环中 :

  • 在我的脚本中,有时会出现服务器、连接、配置或API问题,因此我实现了一个try-catch块来正确捕获异常并跳过它们。 ...但我的问题没有用这个解决方案解决,因为(引发问题的)元素不是问题本身。所以基本上,我的问题是,是否有任何方法可以捕获错误并继续您离开的地方:不跳过错误并转到下一个元素,而是在foreach循环中重复当前的迭代。 显然,继续和打破是行不通的! ...并且当catch部分捕获到

  • 问题内容: 我正在尝试引发异常(不使用try catch块),并且程序在引发异常后立即完成。有没有一种方法可以在我引发异常之后继续执行程序?我抛出了在另一个类中定义的InvalidEmployeeTypeException,但是我希望程序在抛出该异常后继续执行。 问题答案: 试试这个:

  • 问题内容: 我有这段代码。我想回到循环的起点,并再次要求用户输入。但是,它总是循环而不停止请求输入。我的代码有什么问题?谢谢 问题答案: 从http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt%28int%29: “如果翻译成功,则扫描程序将前进经过匹配的输入。” 啊,但是如果翻译是什么 不是 成功的?在这种

  • 本文向大家介绍php中try catch捕获异常实例详解,包括了php中try catch捕获异常实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中try catch捕获异常。分享给大家供大家参考。具体方法分析如下: php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看。 PHP中try{}catch

  • 问题内容: 是否可以捕获异常并继续执行脚本? 问题答案: 当然,只要在要继续执行的地方捕获异常即可。 当然,这存在静默删除可能是非常重要的错误的问题。SomeOperation()可能会失败,从而导致其他难以解决的细微问题,但您永远不会知道是否静默删除该异常。