Исключение Constraint_Error
Исключение Constraint_Error возбуждается в следующих случаях:
Рассмотрим пример:
procedure Constraint_Demo is
X : Integer range 1..20; Y : Integer; begin Put("enter a number "); Get(Y); X := Y; Put("thank you"); end Constraint_Demo; |
Если пользователь вводит значение выходящее за диапазон значаний 1..20, то нарушается ограничение диапазона значений для X, и происходит исключение Constraint_Error.
Поскольку в этом примере не предусмотрен код, который будет обрабатывать это исключение, то выполнение программы будет завершено, и окружение времени выполнения Ады (Ада-система) проинформирует пользователя о возникшей ошибке.
При этом, строка
Put("thank you"); |
выполнена не будет.
Таким образом, при возникновении исключения, остаток, выполняющегося в текущий момент блока, будет отброшен.
Рассмотрим пример в котором выполняется нарушение ограничения диапазона индексных значений для массива:
procedure Constraint_Demo2 is
X : array (1..5) of Integer := (1, 2, 3, 4, 5); Y : Integer := 6; begin X(Y) := 37; end Constraint_Demo2; |
Здесь, исключение Constraint_Error будет генерироваться когда мы будем пытаться обратиться к несуществующему индексу массива.