"Адское" программирование Ada-95 -Компилятор GNAT

         

Исключение Constraint_Error



Исключение Constraint_Error

Исключение Constraint_Error возбуждается в следующих случаях:

  • при попытке нарушения ограничения диапазона, ограничения индекса или ограничения дискриминанта
  • при попытке использования компонента записи, не существующего при текущем значении дискриминанта
  • при попытке использования именуемого или индексируемого компонента, отрезка или атрибута объекта, обозначенных ссылочным значением, если этот объект не существует, поскольку ссылочное значение равно null

Рассмотрим пример:

procedure Constraint_Demo is X : Integer range 0; Y : Integer;begin Put("enter a number "); Get(Y); X := Y; Put("thank you");

end Constraint_Demo;

Если пользователь вводит значение выходящее за диапазон значаний 0, то нарушается ограничение диапазона значений для X, и происходит исключение Constraint_Error.Поскольку в этом примере не предусмотрен код, который будет обрабатывать это исключение, то выполнение программы будет завершено, и окружение времени выполнения Ады (Ада-система) проинформирует пользователя о возникшей ошибке.При этом, строка

Put("thank you");

выполнена не будет.Таким образом, при возникновении исключения, остаток, выполняющегося в текущий момент блока, будет отброшен.

Рассмотрим пример в котором выполняется нарушение ограничения диапазона индексных значений для массива:

procedure Constraint_Demo2 is X : array () of Integer := (1, 2, 3, 4, 5); Y : Integer := 6;begin X(Y) := 37; end Constraint_Demo2;

Здесь, исключение Constraint_Error будет генерироваться когда мы будем пытаться обратиться к несуществующему индексу массива.



Содержание раздела








Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий