овов (этот термин уже встречал

Автор admin Вторник, 5 мая 2009 11:32

овов (этот термин уже встречался ранее в этой главе). Именно этот механизм делает возможным возврат управления при запуске исключения, и он же позволяет разрабатывать независимые компоненты с возможностью обмена информацией об ошибках во время выполнения программы. Чтобы раскрутка стека при обработке исключений стала возможной, в каждый кадр стека необходимо включить дополнительную информацию о каждой функции. Эта информация указывает, какие деструкторы должны быть вызваны (для освобождения локальных объектов), а также сообщает, имеет ли текущая функция блок try и какие исключения обрабатываются соответствующими секциями catch. На хранение дополнительной информации расходуется память, поэтому программы с поддержкой исключений обычно занимают больше памяти, чем программы, в которых исключения не используются1. Даже откомпилированная программа с обработкой исключений имеет больший размер, поскольку компилятору приходится генерировать логику построения кадров стека с дополнительной информацией. Для демонстрации следующая программа с поддержкой исключений и без нее была откомпилирована в Borland С++ Builder


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