используемых разными библиотек

Автор admin Суббота, 2 мая 2009 11:32

используемых разными библиотеками. • Можно использовать нелокальные версии команды перехода в виде функций setjmpO и longjmpO из стандартной библиотеки С. Функция setjmp() сохраняет заведомо нормальное состояние в программе, которое при возникновении проблем восстанавливается функцией longjmp(). Но и в этом случае требуется жесткая привязка места сохранения состояния к месту возникновения ошибки. Обсуждая схемы обработки ошибок в С++, необходимо учитывать еще одно важное обстоятельство: схемы С с сигналами и функциями setjmp()/longjmp() не Традиционная обработка ошибок 27 вызывают деструкторы, поэтому нормальная зачистка объектов не выполняется (более того, если функция longjmp() выходит за пределы области видимости, в которой должны вызываться деструкторы, это приведет к непредсказуемым последствиям). В результате восстановление после исключительных ситуаций становится практически невозможным, так как позади всегда остаются незачищенные объекты, ставшие недоступными. Следующий пример демонстрирует сказанное для функций setjmp/longjmp: //: C01:Nonlocal.cpp // setjmpO & longjmpO linclude #i


Комментарии закрыты.