Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: multithread & exception-safe
Показать сообщение отдельно
pva pva вне форума Автор темы

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Oleg_SK, в принципе про структурные исключения хорошо расписано в SDK, который идёт с борландовскими компиляторами. Все компиляторы, которые я использовал, очень хорошо справляются с исключениями C++ в плане техники (то есть они отлавливаются). Но одной техники мало. Я приведу описанный выше пример ещё раз (скорее всего непонятно выразился):
Допустим, есть форма. На ней кнопка, таймер и какая-нибудь ерундень типа TPicture.
1. при нажатии кнопки выключаем её Button->Enabled = true и включаем таймер
2. при срабатывании таймера выключаем таймер и загружаем картинку. Потом включаем кнопку
Очевидно, что исключение может возникнуть в любом месте программы (по неизвестным причинам). Например файл (картинка) не найден или заблокирован другим процессом.
При возникновении исключения в событии 1 после отключения кнопки или в событии 2 до включения кнопки, кнопка остаётся отключенной навсегда. Восстановить ситуацию поможет только перезапуск приложения. А ведь исключения отработали нормально, по правилам и ситуация не такая уж небывалая...
Ищу лекарство от таких болезней.

Отправлено: 20:55, 04-01-2008 | #8

Название темы: multithread & exception-safe