for-each循环没有执行的可能原因是什么?

时间:2013-03-20 07:34:33

标签: java foreach

有人能告诉我为什么java中的foreach循环没有执行的可能原因是什么?因为每次我调试程序时,它都不会进入我的foreach。

    for(SurveyReport surveyReport : surveyReportList)
    {
       System.out.println(surveyReport.getRiskRank().toString());
    }

这是我的foreach循环。简单但非常奇怪,因为我总是收到InvocationTargetException。

2 个答案:

答案 0 :(得分:2)

  • 正在迭代的集合是空的
  • 程序流绕过for-each循环(例外,条件等等)
  • 错误放置的;会导致空的for-each循环体语句

答案 1 :(得分:1)

“InvocationTargetException是一个经过检查的异常,它包装了被调用的方法或构造函数抛出的异常。” java.lang.reflect.InvocationTargetException

这表明代码可能正在进入循环,但如果是这样,第一个println参数表达式涉及反射,并且通过反射调用的方法或构造函数会引发异常。

在进入循环之前可能会失败但是在你检查到的最后一个地方之后。

尝试捕获异常并显示其getCause()以查看实际出现的问题。