try{
   new Demo();
}catch(SocketException so){
}我想在捕获异常后重新调用这个方法,应该怎么写?就是说类似于递归那样,如果执行指定次数还报异常,即放弃执行。这个应该怎么写?谢谢大家回答!

解决方案 »

  1.   

    定义个全局变量在catch加个判断在写你要调用的方法
      

  2.   

    我觉得应该用循环控制,如果未发生异常,则跳出循环
    while( true )
    {
    try
    {
      new Demo();
      break;
    }catch(SocketException so)
    {
    }
    }
      

  3.   

    2L的可以。稍微改一下
    int times = 0;
    while( times<5 )
    {
    try
    {
      new Demo();
      break;
    }catch(SocketException so)
    {
        times++;
    }
    }
      

  4.   

    不是,我发的意思不明确。我的意思是说,如果我请求服务器,如果不报异常,也就是请求成功的情况,这样我们什么事都不干。如果报异常,则继续调用Demo这个对象,但是只调用指定次数,如果超过则执行下面的语句。
    也就是想知道大家在写通信这块的时候一般是怎么处理这种问题的?我是想从别的服务器上请求数据。
      

  5.   


    public void demo() throws Exception {
    //TODO dosomething here
    throw new Exception();
    }int count=0;
    public void run(){
    try {
    demo();
    } catch (Exception e) {
    count++;
    if (count < 5) {
    run();
    }
    }
    }
      

  6.   

    或者你高兴,可以直接这样,连调用的方法都省去int count=0;
    public void demo(){
    try {
    //TODO dosomething here
    //TODO It may throw an exception here
    } catch (Exception e) {
    count++;
    if (count < 5) {
    demo();
    }
    }
    }