为什么无法捕获ClinetSocket的异常?

nethole 2003-08-25 10:58:23
try
ClientSocket1.Active:=true;
except
showmessage('error');
end;
但还是会出来ESocketError异常,'Asynchronous socket error 10061'。有什么办法捕获这个异常,不让这个异常出来呢?
...全文
43 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lincanwen 2003-10-29
  • 打赏
  • 举报
回复
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
case ErrorEvent of
eeGeneral://错误不在以下几种情况时;
begin
showmessage('发生其他错误');
Exit;
end;
eeSend: //发送数据时出错
begin
showmessage('发送数据错误');
Exit;
end;
eeReceive://接收数据时出错
begin
showmessage('接收数据错误');
Exit;
end;
eeConnect,eeLookup://不能定位服务器或者连接出错
begin
showmessage('不能定位服务器或者连接错误');
Exit;
end;
eeDisconnect://关闭连接时出错,不进行处理
begin
showmessage('关闭连接时错误');
Exit;
end;

end;
lincanwen 2003-10-29
  • 打赏
  • 举报
回复
增加clientsocket1的onClientError事件处理.
procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ErrorCode:=0;
end;
RockEx 2003-10-29
  • 打赏
  • 举报
回复
方法一:
procedure TForm1.ClientDataSet1ReconcileError(DataSet: TClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind;
var Action: TReconcileAction);
begin

end;
如果ClientDataSet1出现异常会触发ReconcileError事件
方法二:
try
ClientDataSet1.Open;
except
on e:exception do
showmessage(e.message) //显示异常信息
end;
bombplane 2003-10-29
  • 打赏
  • 举报
回复
我也想知道。
hongqi162 2003-08-25
  • 打赏
  • 举报
回复
up
lxpbuaa 2003-08-25
  • 打赏
  • 举报
回复
在IDE中运行会出来异常,如果在外面直接运行程序则不会

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
nethole 2003-08-25
  • 打赏
  • 举报
回复
我是在外面直接运行exe的,但还是会出来!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧