Форум программистов, компьютерный форум CyberForum.ru

Правильное завершение потока при фатальной ошибке - C++

Восстановить пароль Регистрация
 
Kadet89
2 / 2 / 0
Регистрация: 18.09.2009
Сообщений: 107
08.07.2013, 20:19     Правильное завершение потока при фатальной ошибке #1
Создаю поток через CreateThread(....), поток выполняется и в какой то момент в нем происходит ожидаемая фатальная ошибка. На экран выводится мессенжбокс с сообщением "Fatal Error...", если я нажимаю ок, то завершается выполнение всего приложения целиком. Мне надо сделать так, чтобы завершался только поток, а приложение продолжало работать и желательно вообще не выводить мессенжбокс с ошибкой, возможно ли такое реализовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2013, 20:19     Правильное завершение потока при фатальной ошибке
Посмотрите здесь:

C++ Сообщение о ошибке при заполнении массива
Вывод сообщения об ошибке при вводе больше n значений. C++
C++ Программа закрываеться при запуске(не успеваешь прочитать сообщение об ошибке)
C++ Завершение потока
C++ Завершение цикла при вводе EOF
C++ Отладчик при ошибке в программе (не Debug)
C++ Завершение потока ввода
C++ Завершение потока

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,294
Завершенные тесты: 1
08.07.2013, 22:59     Правильное завершение потока при фатальной ошибке #2
копать отсюда http://ru.wikipedia.org/wiki/%D0%A1%...BD%D0%B8%D0%B9
и до обеда
Убежденный
Системный программист
 Аватар для Убежденный
14203 / 6218 / 986
Регистрация: 02.05.2013
Сообщений: 10,366
Завершенные тесты: 1
09.07.2013, 10:17     Правильное завершение потока при фатальной ошибке #3
Structured Exception Handling
Vectored Exception Handling

/EH (Exception Handling Model)

SetUnhandledExceptionFilter
_set_abort_behavior
_set_invalid_parameter_handler
_set_purecall_handler
set_terminate
set_unexpected
signal

Добавлено через 10 часов 21 минуту
Но вообще, строить архитектуру программы по такому принципу выживания, как Вы описали -
это очень плохая практика. Здесь может происходить прокидывание ошибки: вместо того,
чтобы быть обнаруженной по месту, ошибка маскируется и, как это частенько бывает,
проникает в другие компоненты, например в результате порчи каких-то данных.
То есть, распостраняет свою "заразу" дальше. И рано или поздно приложение все равно
завершается аварийно, только теперь совсем в другом месте и с совсем другими симптомами.
Часто после такого поворота событий вообще не понятно, из-за чего приложение падает и
где искать причину, а само падение фантомное, воспроизвести его или проследить точку, в
которой все началось, уже не удается.

Поэтому если программа падает - лучше дать ей упасть. Но при этом сохранить максимально
полную информацию о причине падения, коды ошибок, GetLastError и т.п. Также можно снять
крэш-дамп (MiniDumpWriteDump), а затем в отладчике изучить ситуацию в ретроспективе.
Yandex
Объявления
09.07.2013, 10:17     Правильное завершение потока при фатальной ошибке
Ответ Создать тему
Опции темы

Текущее время: 20:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru