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


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


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

обработчик - исключения :: = when выбор-исключения { | выбор-исключения) => последовательность-операторов

выбор-исключения ::= имя-исключения | others

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

называется

окружением. В

любом случае окружение обработчиков исключений синтаксически включает следующий раздел:

begin

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

обработчик - исключения {обработчик-исключения} end

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

others

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

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

Пример:

begin

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

when SINGULAR | NUMERIC.ERROR => PUT(" MATRIX IS SINGULAR "); when others => PUT(" FATAL ERROR "); raise ERROR; end;

Примечание.

В каждом обработчике исключений и в последовательностях операторов окружения допустимы одни и те же виды операторов. Например, оператор возврата допустим в обработчике, если окружение является телом функции.

Ссылки:

видимость 8.3, имя 4.1, исключение 11, настраиваемое тело 12.2, настраиваемый модуль 12.1, обработка исключения 11.4, оператор блока 5.6, оператор возбуждения 11.3, оператор возврата 5.8, последовательность операторов 5.1, раздел описаний 3.9, тело задачи 9.1, тело модуля 9, 9.1, тело пакета 7.1, тело подпрограммы 6.3, тело функции 6.3.

Пред. 

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

Глава 11.

ИСКЛЮЧЕНИЯ

 

Начало  

11.3. ОПЕРАТОРЫ ВОЗБУЖДЕНИЯ




Начало  Назад  Вперед