при помощи стандартной функци

Автор admin Воскресенье, 3 мая 2009 11:32

при помощи стандартной функции set_terminate(), которая возвращает указатель на заменяемую функцию terminate() (при первом вызове это будет стандартная библиотечная версия) для ее последующего восстановления. Пользовательская функция terminate() должна вызываться без аргументов и возвращать void. Кроме того, устанавливаемые обработчики не могут возвращать управление или запускать исключения, они лишь реализуют некую логику завершения программы. Вызов функции terminate() означает, что проблема неразрешима. Применение функции set_terminate() продемонстрировано в следующем примере. Сохранение и восстановление возвращаемого значения поможет локализовать фрагмент кода, в котором произошло неперехваченное исключение: //: C01:Terminator.cpp // Использование set_terminate(). // Программа также демонстрирует обработку неперехваченных исключений. #include linclude using namespace std; void terminatorO { cout « “I’ll be back!” « endl; exit(O): } void (*old_terminate)() = set_terminate(terminator); class Botch { public: class Fruit {}; void f() { cout « “Botch::f()” « endl: throw FruitO: } -


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