Обработчики исключений
Ответная реакция на одно или несколько исключений определяется обработчиком исключения.
обработчик - исключения :: = 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. ОПЕРАТОРЫ ВОЗБУЖДЕНИЯ |