使用IDDY10的idtcpClient:
程序中,使用一个计时器,检查idTcpClient的状态,代码如下:
try
  if not idTcpClient.Connected then
   begin
    idTcpClient1.connect('127.0.0.1',9099);
   end;
except
 //
end;
当服务器强制断开,就出现如题所示的错误信息。
我在Except中却无法获取。问,怎么才能不出现这样的错误提示。

解决方案 »

  1.   

    直接手寫,可能有誤!!! 這樣應該是可翠的。
     try
       if not idTcpClient.Connected then 
       begin 
         idTcpClient1.connect('127.0.0.1',9099); 
       end; 
     Except
       on E: Exception do 
       raise.Create(e.Message);
     end;不過我有部分,為了全局的考慮,做過這樣的處理,你看是否適合你。 application.onExcetion := MyException ; //  定義一個APPLIATION的異常處理過程,將程序的所有異常都放在  MyException  中處理掉
      

  2.   

     貌似你外面程序又嵌套了 try这样的语句块。。
      

  3.   

    改成:
    if not idTcpClient.Connected then
    begin
      try
        idTcpClient1.connect('127.0.0.1',9099);
      except
        //
      end; 
    end;看起来与你的代码没什么区别
      

  4.   

    直接抛出即可,这个属于是正常的异常而非errorif not idTcpClient.Connected then begin 
      try 
        idTcpClient1.connect('127.0.0.1',9099); 
      except 
        //这里不需要处理 
      end; 
    end; 
      

  5.   


    已经使用这个解决:
    Application.OnException:=MyException;
    procedure TOPCForm.MyException(Sender: TObject; E: Exception);
    begin
     if E is EIdSocketError then
        TCPClient.Disconnect;
    end;不知有没有其他方法.