在循环中某个地方异常了  重新执行这次循环 Java这样的函数吗?

解决方案 »

  1.   

    for(int i=0;i<size;i++){
    try{}catch(Exception e){
     i=0;
    }
    }
    我不太明白 ,这么做下去不是死循环么?
      

  2.   

    额 貌似很简单。。我可以在try里定义一个int计数来统计重新执行的次数 如果超过3则不执行重试但是你这种方法貌似很勉强哦
      

  3.   

    for(int i=0;i<size;i++){
    int errorNum=0;
    try{
    errorNum=errorNum++;
    代码体....
    errorNum=0;
    }catch(Exception e){
    if(ErrorNum<=3)
     i=i-1;
    }
    }我意思是这样啦。
      

  4.   

    其实仔细想下 这个重头执行不一定给循环本身有关系 比如如果LZ要是用集合或者ResultSet的话 完全可以在条件成立后 将他们的类似索引的东西移动到第一位
      

  5.   

    对for的循环体 做一个单独的方法 
    for(int i = 0 ;i <100;i++){
      export(3,..);
    }public boolean export(int maxerrornum,args..){
      for(int i = 0 ;i < maxerrornum;i++){
          try{
          }catch(Exception e{
           continue;
       }
        //if success 
    return true;
       }
    return false;}
      

  6.   

    从重构角度讲,
    异常是异常,循环是循环。
    最好还是写在2个地方比较好。
    也便于单元测试。而且,万一满足异常的条件或者循环操作的方法变化了,
    (很有可能变化)
    也好进行定位和修改。不知道lz的具体需求是什么,
    没准只能是边操作边检查也说不准。
    不过这样的需求还挺bt的,出错了还要翻回去重新做一遍。
    good luck
      

  7.   

    for(int i=0;i<size;i++)

    int errorNum=0; 
    try{ errorNum=errorNum++; 代码体.... errorNum=0; 
    }catch(Exception e)
    {  i=i-1;
       continue;
     } }
    试试