我正在使用 Delphi XE2 和 Mad 除了我有一个应用程序女巫使用 Indy 进行一些互联网操作......问题是当一个简单的异常引发时,就像没有互联网连接一样,madexcept 会弹出。我想禁用这些来自 indy 的异常。
我有以下异常类: EIdSocketError 消息:套接字错误 #11004
我在 mad except 中进入异常过滤器对话框并将 EIdSocketError 放在异常过滤器中,但它不起作用我做错了什么?
我正在使用 Delphi XE2 和 Mad 除了我有一个应用程序女巫使用 Indy 进行一些互联网操作......问题是当一个简单的异常引发时,就像没有互联网连接一样,madexcept 会弹出。我想禁用这些来自 indy 的异常。
我有以下异常类: EIdSocketError 消息:套接字错误 #11004
我在 mad except 中进入异常过滤器对话框并将 EIdSocketError 放在异常过滤器中,但它不起作用我做错了什么?
提出的类的名称是,EIdSocketError
但您将过滤器设置为EIDSocketError
。也许 MadExcept 区分大小写?另请记住,所有 Indy 异常最终都源自于,EIdException
因此您可能希望对其进行过滤。
无论如何,MadExcept 只捕获未捕获的异常,因此try/except
在代码中使用块是正确的解决方案。这就是 Indy 的设计用途。如果在 DFM 流式处理期间在运行时实例化组件时遇到异常,那么您必须在设计时将组件保持在 Active 状态。不要那样做。确保组件在设计时停用,然后在您准备好使用它们时在运行时在您的代码中激活它们。
madExcept 只会捕获那些未被您的应用程序本身处理的异常。因此,处理相关异常的简单 try-except 块可能是解决您的问题的最干净的解决方案。