Фильтр исключений MadExcept - PullRequest
       46

Фильтр исключений MadExcept

3 голосов
/ 21 января 2012

Я использую Delphi XE2 и Mad За исключением того, что у меня есть приложение, которое использует Indy для некоторых операций в Интернете ... проблема в том, что когда возникает простое исключение, например, нет подключения к Интернету, появляется madexcept. Я хочу отключить эти исключения, которые происходят из Индии.

У меня есть следующий класс исключений: EIdSocketError message: Ошибка сокета # 11004

Я вошел в диалоговое окно фильтра исключений в mad кроме и добавил EIdSocketError в фильтр исключений, но он не работает, что я делаю не так?

enter image description here

Ответы [ 2 ]

9 голосов
/ 21 января 2012

Имя поднимаемого класса - EIdSocketError, но вместо этого вы установите фильтр на EIDSocketError. Возможно, MadExcept чувствителен к регистру? Также имейте в виду, что все исключения Indy в конечном счете получены из EIdException, поэтому вы можете захотеть отфильтровать их вместо этого.

В любом случае MadExcept перехватывает только необработанные исключения, поэтому правильное решение - использовать блоки try/except в вашем коде. Вот как Indy предназначен для использования. Если вы получаете исключения, когда компоненты создаются во время выполнения во время потоковой передачи DFM, то вы должны были оставить компоненты в активном состоянии во время разработки. Не делай этого. Убедитесь, что компоненты деактивированы во время разработки, затем активируйте их в своем коде во время выполнения, когда вы будете готовы их использовать.

4 голосов
/ 21 января 2012

madExcept будет перехватывать только те исключения, которые не обрабатываются самим вашим приложением.Таким образом, простой блок try-Кроме того, который обрабатывает рассматриваемые исключения, может быть самым чистым решением вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...