Справочник по Ada 2012
11.1 Объявления исключений
Объявление exception_declaration объявляет имя исключения.
Синтаксис
Статическая семантика
Каждое отдельное объявление exception_declaration объявляет имя для различного исключения. Если обобщённый блок содержит exception_declaration, то exception_declarations, неявно сгенерированные различными инстанциациями обобщённого блока, ссылаются на отдельные исключения (но все имеют то же самое defining_identifier). Конкретное исключение, обозначаемое именем исключения, определяется на этапе компиляции и остаётся неизменным независимо от того, сколько раз происходит обработка объявления exception_declaration.
Предопределённые исключения - это те, которые объявлены в объявлении пакета Standard: Constraint_Error, Program_Error, Storage_Error и Tasking_Error; одно из них поднимается, когда происходит сбой проверки, определённой языком.
Динамическая семантика
Обработка объявления exception_declaration не имеет эффекта.
Выполнение любого конструкта вызывает Storage_Error, если для этого выполнения недостаточно памяти. Объём памяти, необходимый для выполнения конструктов, не определён.
Примеры
Примеры объявлений исключений, определённых пользователем:
Singular : exception;
Error : exception;
Overflow, Underflow : exception;
Error : exception;
Overflow, Underflow : exception;