如标题,我用的不是for while 循环,是自循环。
如果遇到这种情况,怎么跳出死循环。
谢谢各位点拨。

解决方案 »

  1.   

    Break 不能实现,我是自循环
      

  2.   

    private String getSessionId(OrderInfo oi){
    try {
    exec.execute();
    } catch (Exception e1) {
    System.err.println("Error: " + e1.getMessage());

    OrderChecker oc=new OrderChecker();
    String orderD=oc.changePath(oi.getConvertedCreatedDtm());
    oi.setConvertedCreatedDtm(orderD);
    sessionId=this.getSessionId(oi);
    if(!"".equals(sessionId)){
    return sessionId;
    }

    }
      

  3.   

    呵呵,,通过try{}catch{}如果有exception则跳出,呵。
      

  4.   

    我的意思是,如果我找不到sessionID的话,会永远往里面跳的,走不到catch
      

  5.   

    exec.execute(); 代码 贴出来看下 
      

  6.   

    这个是jar包里的东西,是ant的一个工具包里的东西,是为了实现远程登录ssh服务器的功能
      

  7.   

    我知道这个设计有问题,一般情况下是不会找不到sessionID,但是不排除sessionID丢失的情况,如果sessionId丢失,那怎么处理呢?
    因为我本身就是在处理异常,而且是自循环的调用。
      

  8.   

    private String getSessionId(OrderInfo oi){
    try {
       exec.execute();
    } catch (Exception e1) {
      System.err.println("Error: " + e1.getMessage());  System.err.println("兄弟!!你的程序这句话能打印出来吗?????");
      ....
      return null;
    }
    }
    -----------------------------------
    private String getSessionId (OrderInfo oi)   throws Exception {
    try {
       exec.execute();
    } catch (Exception e1) {
      System.err.println("Error: " + e1.getMessage());  System.err.println("兄弟!!这里能打印出来吗?????");}
      

  9.   

    楼上  没写完就    发出去了!!!!!!
    你这代码不完整啊   先改改
    private String getSessionId(OrderInfo oi) {
      
      try {
        exec.execute();
      } catch (Exception e1) {
        System.err.println("兄弟!!这里能打印出来吗?????");
        //原来代码全删          
      }
    }
    能打印出来就能救,打印不出来 就是 exec.execute() 有问题了
            }catch(Exception){        }
      }
      
      return sessionId;
    }调用这个方法的时候
      
    try{
      getSessionId(oi)
    }
      

  10.   

    。什么 破 编译器。
    private String getSessionId(OrderInfo oi) {
       
      try {
      exec.execute();
      } catch (Exception e1) {
      System.err.println("兄弟!!这里能打印出来吗?????");
      //原来代码全删   
      }
    }
    能打印出来就能救,打印不出来 就是 exec.execute() 有问题了
      

  11.   


    private String getSessionId(OrderInfo oi){
    try {
    exec.execute();
    } catch (Exception e1) {
    System.err.println("Error: " + e1.getMessage());OrderChecker oc=new OrderChecker();
    String orderD=oc.changePath(oi.getConvertedCreatedDtm());
    oi.setConvertedCreatedDtm(orderD);
    sessionId=this.getSessionId(oi);if(!"".equals(sessionId)){
    return sessionId;
    }}
    关键是这里,我是自循环,如果找不到sessionID就永远循环下去,我现在的想法是循环最多3次,要是找不到就跳出,这个怎么实现?
      

  12.   

    private static int exceptionCount=0;private String getSessionId(OrderInfo oi){
      
       if(exceptionCount>2)return null;
       
       exceptionCount++;
      try {
         exec.execute();
      } catch (Exception e1) {
        //兄弟你这里的代码我就全省了啊
      }}
      

  13.   

    谢谢楼上,最近在忙别的case,这个priority是最低的,以后再研究。
    结贴了