Windows для профессионалов


Создание оболочки вокруг функции потока


Другой способ состоит в том, что Вы помещаете входную функцию первичного по тока (main, wmain, WinMain или wWinMairi) в блок try-except. Фильтр исключений дол жен всегда возвращать EXCEPTION_EXECUTE_HANDLER, чтобы исключение действи тельно обрабатывалось; это предотвратит вызов UnbandledExceptionFilter.

В обряботчике исключений Вы выводите на экран диалоговое окно с какой-ни будь диагностической информацией. Пользователь может скопировать эту информа цию и передать ее в службу технической поддержки Вашего приложения, что помо жет выявить источник проблем. Это диалоговое окно надо разработать так, чтобы пользователь мог завершить приложение, но не отлаживать.

Этому способу присущ один недостаток: он позволяет перехватывать только те исключения, которые возникают в первичном потоке Если исключение происходит в любом другом потоке процесса, система вызывает функцию UnhandledExceptionFilter. Чтобы вывернуться из этой ситуации, придется также включить блоки try-except во входные функции всех вторичных потоков Вашего процесса.



Содержание раздела