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

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

Реакция на одно или несколько исключений задается обработчиком exception_handler.

Синтаксис

handled_sequence_of_statements ::=
sequence_of_statements
[exception
exception_handler
{exception_handler}]
exception_handler ::=
when [choice_parameter_specification:] exception_choice {| exception_choice} =>
sequence_of_statements
choice_parameter_specification ::= defining_identifier
exception_choice ::= имя_исключения | others

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

Выбор с имя_исключения покрывает указанное исключение. Выбор с others покрывает все исключения, не указанные предыдущими выборами в том же handled_sequence_of_statements. Два выбора в разных exception_handler различных handled_sequence_of_statements не должны покрывать одно и то же исключение.
Выбор с others разрешен только для последнего обработчика в handled_sequence_of_statements и только как единственный выбор в этом обработчике.
имя_исключения выбора не должно обозначать исключение, объявленное в формальном пакете-параметре обобщения.

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

choice_parameter_specification объявляет параметр выбора, который является постоянным объектом типа Exception_Occurrence (см. 11.4.1). Во время обработки возникновения исключения параметр выбора, если таковой имеется, в обработчике представляет собой возникновение исключения, которое обрабатывается.

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

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

Примеры

Пример обработчика исключений:
begin
Open(File, In_File, "input.txt"); -- см. A.8.2
exception
when E : Name_Error =>
Put("Не удалось открыть файл ввода : ");
Put_Line(Exception_Message(E)); -- см. 11.4.1
raise;
end;


Spec-Zone.ru

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