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