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

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

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

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

2 ответа

Решение

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

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

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

Другие вопросы по тегам