Справочное руководство по языку Ада-83


Операторы блока


Оператор блока содержит последовательность операторов, которой может предшествовать раздел описаний и за которой могут следовать обработчики исключений.

оператор-блока ::= [простое - имя - блока:] [declare

раздел - описаний] begin

последовательность-операторов [exception

обработчик - исключения {обработчик - исключения}] end [простое- имя -блока];

Если в операторе блока используется простое имя блока, то оно должно задаваться как в начале, так и в конце.

Выполнение оператора блока заключается в предвыполнении раздела описаний (при его наличии) и последующем выполнении последовательности операторов. Если оператор блока содержит обработчики исключений, то они выполняются при возбуждении соответствующих исключений во время выполнения последовательности операторов (см. 11.2).

Пример:

SWAP: declare

TEMP : INTEGER; begin

TEMP := V; V := U; U :== TEMP; end SWAP;

Примечание.

Если в операторе блока, выполнение последовательности операторов которого окончено, описаны объекты задачного типа, то оператор блока не заканчивается до тех



пор, пока не будут завершены все его подчиненные задачи (см. 9.4). Это правило применяется также при окончании из-за выполнения операторов выхода, возврата или перехода или из-за возбуждения исключения.

Внутри оператора блока его имя может использоваться в расширенных именах локальных понятий, таких как в приведенном выше примере (см. 4.1.3, п. е).

Ссылки:

возбуждение исключений 11, задачный объект 9.2, обработчик исключений 11.2, оператор возврата 5.8, оператор выхода 5.7, оператор перехода 5.9, подчиненная задача 9.4, последовательность операторов 5.1, простое имя 4.1, раздел описаний 3.9, расширенное имя 4.1.3.

Пред.  Уровень выше  След.

5.5. ОПЕРАТОРЫ ЦИКЛА

 

Содержание  

5.7. ОПЕРАТОРЫ ВЫХОДА



Содержание раздела