Как компилятор C++ реализует обработку исключений - Заключение

ОГЛАВЛЕНИЕ

 

Заключение

Как сказано выше, компилятор C++ и библиотека исключений времени выполнения, с поддержкой от операционной системы, взаимодействуют для выполнения обработки исключений.

Примечания

  •     На дату написания этой статьи выпущен Visual Studio 7.0. Библиотека обработки исключений компилировалась и тестировалась преимущественно в VC++ 6.0 на Windows 2000, работающей на процессоре пентиум. Она также испытывалась в VC++ 5.0 и бета-версии VC++ 7.0. Есть небольшое различие между 6.0 и 7.0. 6.0 сначала копирует исключение (или его ссылку) в кадр блока catch и затем выполняет раскрутку стека перед вызовом блока catch. Библиотека 7.0 сначала выполняет раскрутку стека. Поведение созданной библиотеки аналогично библиотеке 6.0 в этом отношении.
  •     Смотрите прекрасные статьи, написанные Мэттом Пиетреком, по структурной обработке исключений в MSDN,.
  •     Компилятор может не создавать никаких связанных с исключением данных для функции, не имеющей блока try и не определяющей никакого объекта, имеющего нетривиальный деструктор.