Spec-Zone.ru › Ada 2012
Справочник Ada 2012

11.4 Обработка исключений

Когда возникает исключение, выполнение программы прерывается, и управление передаётся соответствующему обработчику_исключений, если таковой имеется. Обработка исключения означает реакцию на исключительное событие. Распространение исключения означает повторное возбуждение исключения в другом контексте; другими словами, отсутствие реакции на исключительное событие в текущем контексте.

Динамические семантики

В рамках заданного процесса, если выполнение конструкции a определено этим международным стандартом как (частично) включающее выполнение конструкции b, то во время выполнения b выполнение a считается динамически охватывающим выполнение b. Наиболее глубокое динамически охватывающее выполнение данного выполнения — это динамически охватывающее выполнение, которое началось последним.
Когда исключение возбуждается в ходе выполнения заданной конструкции, остальная часть выполнения этой конструкции прерывается; то есть, любая часть выполнения, которая ещё не началась, не выполняется. Конструкция завершается, а затем покидается, как объяснено в 7.6.1. Затем:
  • Если конструкция является телом_задачи, исключение не распространяется дальше;
  • Если конструкция представляет собой последовательность_операторов обрабатываемой_последовательности_операторов, которая имеет обработчик с выбором, охватывающим исключение, то исключение обрабатывается этим обработчиком;
  • В противном случае, исключение распространяется на самое глубокое динамически охватывающее выполнение, что означает повторное возбуждение исключения в этом контексте.
Когда исключение обрабатывается заданным обработчиком, если имеется, то сначала уточняется указание_параметра_выбора, что создаёт параметр выбора и инициализирует его в соответствии с исключением. Затем выполняется последовательность_операторов обработчика; это выполнение заменяет прерванную часть выполнения последовательности_операторов.
ПРИМЕЧАНИЯ
2 Обратите внимание, что исключения, возбуждаемые в части_объявления тела, не обрабатываются обработчиками обрабатываемой_последовательности_операторов этого тела.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API