DelphiFTP超时异常
Delphi FTP timeout exception
我正在使用 Indy 的 FTP。
它完全符合我的要求,我唯一的问题是如果系统未连接到 Internet 或服务器已关闭,则会在屏幕上显示超时异常。
我似乎无法找出如何捕获异常。
我只是希望它能够显示我自己的消息以向用户保证没有问题,而不是显示错误。如果说得通。
我以前用过 try excepts,但它们似乎在这里不起作用。
有人可以给我一个想法或一些示例代码,说明在此处以及如何编写异常捕获器吗?
谢谢
编辑:
抱歉,我的普通电脑不在身边,所以无法 post 编码。
实际上我只是重试了,它确实捕获了它,感谢关于调试器总是显示异常的说明。
但是,在我的自定义消息之后,我还会收到一条 'Connection Closed Gracefully' 消息。 (我 运行 它在调试器之外)
How/Where我可以catch/stop那个吗?
此外,它有时会 returns 来自我的服务器的消息,例如 'Cant connect more than 3 times on same account' 或其他。我也可以 stop/catch 吗?
谢谢
这里:
Form1.ftp.Host := 'HOSTNAME';
Form1.ftp.User := 'USERNAME';
Form1.ftp.password := 'PASSWORD';
Try
Form1.ftp.Connect;
Except on E : Exception do
begin
ShowMessage('Timeout Error, dont worry');
end;
end;
与 Indy 中的大多数组件一样,TIdFTP
同步执行所有操作,并且将错误报告为异常。标准 try/except
块工作得很好。 Indy 就是为此而设计的。
如果您在 运行 您的应用程序处于调试器之外时看到 Connection Closed Gracefully
消息出现,这意味着您尝试在套接字已经断开连接后执行套接字操作,但您没有捕获代码中引发的 EIdConnClosedGracefully
异常。例如,如果 Connect()
失败,它会在向您抛出异常之前在内部调用 Disconnect()
。在这种情况下,不要调用任何其他 TIdFTP
方法,除非需要时再次调用 Connect()
。
至于 FTP 服务器发送的错误消息,它们通常通过引发 EIdReplyRFCError
(或派生的)异常来报告,您可以在代码中捕获这些异常。
我正在使用 Indy 的 FTP。
它完全符合我的要求,我唯一的问题是如果系统未连接到 Internet 或服务器已关闭,则会在屏幕上显示超时异常。
我似乎无法找出如何捕获异常。 我只是希望它能够显示我自己的消息以向用户保证没有问题,而不是显示错误。如果说得通。
我以前用过 try excepts,但它们似乎在这里不起作用。 有人可以给我一个想法或一些示例代码,说明在此处以及如何编写异常捕获器吗?
谢谢
编辑: 抱歉,我的普通电脑不在身边,所以无法 post 编码。 实际上我只是重试了,它确实捕获了它,感谢关于调试器总是显示异常的说明。 但是,在我的自定义消息之后,我还会收到一条 'Connection Closed Gracefully' 消息。 (我 运行 它在调试器之外) How/Where我可以catch/stop那个吗?
此外,它有时会 returns 来自我的服务器的消息,例如 'Cant connect more than 3 times on same account' 或其他。我也可以 stop/catch 吗? 谢谢 这里:
Form1.ftp.Host := 'HOSTNAME';
Form1.ftp.User := 'USERNAME';
Form1.ftp.password := 'PASSWORD';
Try
Form1.ftp.Connect;
Except on E : Exception do
begin
ShowMessage('Timeout Error, dont worry');
end;
end;
与 Indy 中的大多数组件一样,TIdFTP
同步执行所有操作,并且将错误报告为异常。标准 try/except
块工作得很好。 Indy 就是为此而设计的。
如果您在 运行 您的应用程序处于调试器之外时看到 Connection Closed Gracefully
消息出现,这意味着您尝试在套接字已经断开连接后执行套接字操作,但您没有捕获代码中引发的 EIdConnClosedGracefully
异常。例如,如果 Connect()
失败,它会在向您抛出异常之前在内部调用 Disconnect()
。在这种情况下,不要调用任何其他 TIdFTP
方法,除非需要时再次调用 Connect()
。
至于 FTP 服务器发送的错误消息,它们通常通过引发 EIdReplyRFCError
(或派生的)异常来报告,您可以在代码中捕获这些异常。