repeat
           bError := False;
          try
          HTTPGET.Post('http://192.168.0.4:89/server/index.php',sParam, Response);
          except
          on E:Exception do
           begin
            raise;
            bError := True;
            chinacdhcpclient.ServerSocket1.Close;
           end;          end;
         until (not bError);
如题,出现了这错误,我这样处理,可是还是会报错,而且都到不了except之后,直接就跳错误出来了,这是怎么回事啊?

解决方案 »

  1.   

    我知道是网络错误啊,那如果出现这个错误的时候应该对它进行处理,比如说关闭连接啊,或者说做别的操作啊,可是我这样,我的  except
      on E:Exception do
      begin
      bError := True;
      chinacdhcpclient.ServerSocket1.Close;
      raise;
      end;  中的代码完全没有执行到,这要怎么办呢?我想如果出现了这错误就执行except里面的代码呀!
      

  2.   

    跟踪就是到了HTTPGET.Post('http://192.168.0.4:89/server/index.php',sParam, Response);这一句,停顿了好久就出现socket error 了,,就不会到下面去了,
      

  3.   

    不是应该在try里出的错误应该就会倒except里面去了的吗?
      

  4.   

    1 HTTPGET.Post 如果网路异常会出现等待,大概是超时之后会抛出异常,如果想缩短等待时间,可以把timeout时间缩短
    2 你第一段代码里的raise确实写错了
    3 虽然HTTPGET我没用过,不过一些异步方式的组件是事件驱动方式的,错误会在相应的控件事件里抛出,例如socket控件的OnEerror事件,你可以查一下你使用的控件是否有相应的错误处理事件,写下代码看看