异常处理冒险II

时间:2011-05-03 06:27:37

标签: java exception-handling foreach try-catch

让我说我有这个 -

for() { //this is a for-each loop

 try {

  //my logic

 } catch (Exception e) {

    System.out.println("Exception caught and handled");

    //Some more logic is written..Like calling a method from another class etc..

 } //end of try-catch block

}end of for-each loop

如果处理异常,catch块中的逻辑会执行吗?之后,我能够进入for-each循环的下一次迭代吗?

3 个答案:

答案 0 :(得分:2)

异常处理不会破坏循环。因此它会进一步迭代 catch-Block中的代码将被执行。

答案 1 :(得分:1)

在你的try-catch块中,引发异常的行将是最后一行,它在当前的迭代中执行。在下一次迭代中,您将重新开始。

当然,如果你遇到异常,catch块会执行。

答案 2 :(得分:1)

首先,如果你自己尝试,你会得到更多的声音。

然而,这是我的想法 -

  • 是。如果在try块中抛出任何异常,它将在catch块中为catch,并且将执行for-each循环的下一次迭代。
  • 但是,如果catch块中的业务逻辑抛出任何异常,那么for循环将会中断。 (这就是为什么,在catch块中放置任何业务逻辑不是一个好的做法)但是,在更安全的一面,用另一个try-catch块包围你的业务逻辑(在catch块内),即

    for() { //this is a for-each loop
     try {
      //my logic
     } catch (Exception e) {
        System.out.println("Exception caught and handled");
            try{
            //Some more logic is written..Like calling a method from another class etc..
            } catch(Exception ex){
                System.out.println("Exception caught inside Catch Block and handled");
            }
     } //end of try-catch block
    }end of for-each loop