Фильтр исключений MadExcept
Я использую Delphi XE2 и Mad За исключением того, что у меня есть приложение, которое использует Indy для некоторых операций в Интернете... проблема в том, что, когда возникает простое исключение, например, отсутствует подключение к Интернету, появляется madexcept. Я хочу отключить эти исключения, которые приходят из Индии.
У меня есть следующий класс исключений: EIdSocketError message: Ошибка сокета #11004
Я вошел в диалог фильтра исключений в mad исключения и поместил EIdSocketError в фильтр исключений, но он не работает, что я делаю неправильно?
2 ответа
Название поднимаемого класса EIdSocketError
но вы установите фильтр на EIDSocketError
вместо. Возможно, MadExcept чувствителен к регистру? Также имейте в виду, что все исключения Indy в конечном счете происходят из EIdException
так что вы можете фильтровать это вместо этого.
В любом случае, MadExcept перехватывает только неперехваченные исключения, поэтому использование try/except
блоки в вашем коде - это правильное решение. Вот как Indy предназначен для использования. Если вы получаете исключения, когда компоненты создаются во время выполнения во время потоковой передачи DFM, то вы должны были оставить компоненты в активном состоянии во время разработки. Не делай этого. Убедитесь, что компоненты деактивированы во время разработки, а затем активируйте их в своем коде во время выполнения, когда вы будете готовы их использовать.
madExcept будет перехватывать только те исключения, которые не обрабатываются самим приложением. Таким образом, простой блок try-Кроме того, который обрабатывает рассматриваемые исключения, может быть самым чистым решением вашей проблемы.