logo
volkov / C++ / Бьерн Страуструп-Справочное руководство по С++

R.15 Обработка особых ситуаций r.15.1 Обработка особых ситуаций

При обработке особых ситуаций в ходе выполнения программы информация и

управление передаются из некоторой точки обработчику особых

ситуаций. Обработчик находится в цепочке выполненных вызовов

функций. Управление обработчику передается с помощью

выражения-запуска, которое может быть только в проверяемом-блоке

обработчика или в функции, вызванной из проверяемого-блока.

проверяемый-блок:

try составной-оператор список-обработчиков

список-обработчиков:

обработчик список-обработчиков opt

обработчик:

catch ( описание-особой-ситуации ) составной-оператор

описание-особой-ситуации:

список-спецификаций-типа описатель

список-спецификаций-типа абстрактный-описатель

список-спецификаций-типа

...

выражение-запуска:

throw выражение opt

Конструкция проверяемый-блок является оператором ($$R.6), а

выражение-запуска - унарным выражением типа void ($$R.5). Иногда

выражение-запуска называют "точкой запуска", а про функцию, в которой

встретилось выражение-запуска, говорят, что она "запускает особую

ситуацию. Часть программы, которой передается управление из точки

запуска называется обработчиком.