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

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

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

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

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


Spec-Zone.ru

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