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

11.3 Операторы raise

Оператор raise_statement вызывает исключение.

Синтаксис

raise_statement ::= raise;
| raise имя_исключенияname [with строковое_выражениеexpression];

Правила легальности

Используемое имя_исключения (если присутствует) в операторе raise_statement должно соответствовать типу исключения. Оператор raise_statement без имя_исключения (т.е., оператор повторного возбуждения) должен находиться внутри обработчика, но не внутри блока, заключённого этим обработчиком.

Правила разрешения имён

Выражение expression, если оно присутствует в операторе raise_statement, должно иметь тип String.

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

Вызов исключения — это вызов новой реализации этого исключения, как описано в 11.4. При выполнении оператора raise_statement с указанием имя_исключения, вызывается исключение с заданным именем. Если присутствует строковое_выражение, оно вычисляется, и его значение связывается с экземпляром исключения. При выполнении оператора повторного возбуждения, повторно возбуждается экземпляр исключения, который вызвал передачу управления в ближайший внешний обработчик.

Примеры

Примеры операторов raise:
raise Ada.IO_Exceptions.Name_Error; -- см. A.13
raise Queue_Error with "Буфер заполнен"; -- см. 9.11
raise; -- повторное возбуждение текущего исключения


Spec-Zone.ru

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