MadExcept异常过滤器

时间:2012-01-21 13:15:38

标签: delphi error-handling madexcept

我正在使用Delphi XE2和Mad Except我有一个应用程序巫婆使用Indy进行一些互联网操作...问题是,当一个简单的异常被提出时,就像没有互联网连接makexcept弹出。我想禁用这些来自indy的例外。

我有以下异常类:EIdSocketError消息:套接字错误#11004

我在疯狂的情况下输入了异常过滤器对话框,并将EIdSocketError放在异常过滤器上,但它不起作用我做错了什么?

enter image description here

2 个答案:

答案 0 :(得分:9)

正在引发的类的名称为EIdSocketError,但您将过滤器设置为EIDSocketError。也许MadExcept区分大小写?另请注意,所有Indy异常最终都来自EIdException,因此您可能希望对其进行过滤。

在任何情况下,MadExcept仅捕获未捕获的异常,因此在代码中使用try/except块是正确的解决方案。这就是Indy的设计使用方式。如果在DFM流式传输期间在运行时实例化组件时遇到异常,则必须在设计时将组件保持在活动状态。不要那样做。确保在设计时停用组件,然后在准备使用它们时在运行时在代码中激活它们。

答案 1 :(得分:4)

madExcept只会捕获应用程序本身未处理的异常。因此,处理有问题的异常的简单try-except块可能是解决问题的最简洁的解决方案。