异常处理问题 ( 积分: 25 )

  • 主题发起人 主题发起人 m_j_j_delphi
  • 开始时间 开始时间
M

m_j_j_delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
project DigitalRecordClient.exe raised exception class EIdConnClosedGracefully with message 'Connection Closed Gracefully..' process stopped 怎么对这个异常做处理,用自己的提示来提示这个异常??
 
project DigitalRecordClient.exe raised exception class EIdConnClosedGracefully with message 'Connection Closed Gracefully..' process stopped 怎么对这个异常做处理,用自己的提示来提示这个异常??
 
那为大虾给个答案,感激不尽!
 
Connection Closed Gracefully : 温和的关闭连接
这是indy server 抛出的EIdConnClosedGracefully异常。
出现这个问题的有可能原因是:服务器没有响应。
关于这个异常的详细说明:
很多Indy组件的用户常常因为Indy server抛出的EIdConnClosedGracefully异常而烦恼,特别是HTTP和其他的server。EIdConnClosedGracefully是连接已经被另一方故意的关闭的象征。这与导致连接复位的错误所致的断开的连接不同。如果另一方已经关闭了连接,并且仍然向套接字中读写,Indy组件将会抛出EIdConnClosedGracefully异常。这与您尝试向一个在您不知情的情况下被关闭的文件中读写数据是很相似的。
在有些情况下这是一个真的异常,你需要编程处理它。在另外一些情况下(典型的服务器),这是协议功能的正常的一部分,Indy组件会为您处理这个异常。即使Indy组件捕捉到了这个异常,当在IDE编程环境中运行时,调试器也将会首先触发它。你只要按F9键继续运行,Indy组件将会处理这个异常,但是在调试期间不断的停止运行是非常烦人的。在Indy组件捕捉到这个异常的情况下,除非在IDE中运行,否则您的用户将不会再看到异常提示。

简单的解决方法:
因为对于从EIdSilentException继承来的服务器,EIdConnClosedGracefully是一个正常的异常。您可以在“Tools”菜单的“Debugger Options”的“Language Exceptions”选项卡中将EIdSilentException加到忽略的异常的列表中。当加到忽略的异常的列表中后这个异常仍然会在代码中触发并被处理,但是调试器将不会停止程序的运行。

如果还不太明白,更详细地介绍可以参考这篇文章:
http://www.csdn.net/Develop/article/23%5C23137.shtm
 
要对这个异常进行处理,意思是:给用户一个中文的提示,说明是服务器没有响应,该怎么做呀?
 
后退
顶部