Справочник Ada 2005
11.1 Объявления исключений
Объявление exception_declaration объявляет имя для исключения.
Синтаксис
Статическая семантика
Каждое отдельное объявление exception_declaration объявляет имя для различного исключения. Если обобщённый блок содержит объявление exception_declaration, то объявления exception_declaration, неявно сгенерированные различными инстанцированиями обобщённого блока, относятся к разным исключениям (но все имеют одинаковое 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;