围绕try / catch会破坏for循环吗?

时间:2014-07-28 19:20:03

标签: java for-loop try-catch

在下面的代码中,我想知道是否在for循环中抛出异常并且错误消息被添加到catch块中的JSON对象,程序将在异常之后返回到for循环的下一次迭代抛出?或者它会打破for循环并返回对象吗?

JSONOBject obj = new JSONObject();
try
{
    for(i=0; i<10; i++)
    {
        //do things in here that may throw an exception
        obj.put("message","did not throw exception");
    }
{
catch(Exception e)
{
    obj.put("message",e.getMessage());
}
return obj;

3 个答案:

答案 0 :(得分:2)

异常将终止该方法,因为在catch块之后,下一个语句是return

如果要继续循环,请将整个try / catch放在循环中,如:

for (.... whatever ...)
{
    try
    {
        something
    }
    catch(Exception e)
    {
        obj.put("message",e.getMessage());
    }
}

在这种情况下,循环将执行所有指定的迭代,并且捕获的每个异常都会向obj添加新消息。

答案 1 :(得分:0)

否 - 循环将从抛出异常时退出 - 在catch块完成之后。

答案 2 :(得分:0)

在try块中,一旦抛出错误,该块中的执行就会停止并且控制跳转到catch块。因此,在您的情况下,for循环的其余部分不会执行。

如果您希望继续执行for循环,可以将try catch移动到for循环中。