Справочное руководство по языку Ада-83


Подавление проверок - часть 2


/p>

Следующие проверки соответствуют ситуациям, в которых возбуждается исключение NUMERIC_ERROR. Допустимыми именами в соответствующих прагмах являются имена числовых типов.

DIVISION_CHECK

Проверяется, что второй операнд операций /, rem и mod не равен нулю.

OVERFLOW_CHECK

Проверяется, что в результате выполнения числовой операции не возникает переполнения.

Следующие проверки соответствуют ситуациям, в которых возбуждается исключение PROGRAM - ERROR. Допустимыми именами в соответствующих прагмах являются имена задач-ных модулей, настраиваемых модулей или подпрограмм.

ELABORATION_CHECK

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

Следующие проверки соответствуют ситуациям, в которых возбуждается исключение STORAGE_ERROR. Допустимыми именами в соответствующих прагмах являются имена, обозначающие ссылочные типы. задачные модули или полпппгпяммм

STORAGE_ERROR

Проверяется, что выполнение генератора не потребует объема памяти, большего, чем необходимо для выбора, или что требуемый под задачу или для подпрограммы объем памяти достаточен.

Если возникает ошибочная ситуация в отсутствие проверок во время выполнения программы, то программа считается ошибочной (результаты выполнения не определяются в языке).

Примеры:

pragma SUPPRESS (RANGE_CHECK);

pragma SUPPRESS (INDEX_CHECK, ON => TABLE);

Примечание.

Для некоторых реализации может оказаться невозможным или слишком дорогим подавление некоторых проверок, тогда соответствующая прагма SUPPRESS может быть проигнорирована. Следовательно, наличие такой прагмы внутри данного модуля не гарантирует, что соответствующее исключение не будет возбуждено; эти исключения также могут распространяться вызванными модулями.

;i

Ссылки:

агрегат 4.3, активизация 9.3, атрибут 4.1.4, вызов подпрограмм????? |4.8, дискретный диапазон 3.6, дискриминант 3.7.1, задача 9, задачный модуль 9, задачный тип 1'9.1, идентификатор 2.3, именуемый тип 3.7, индекс 3.6, индексируемая компонента 4.1.1, исключение CONSTRAINT_ERROR 11.1, исключение NUMERIC_ERROR 11.1, исключение PROGRAM_ERROR 11.1, компонента записи 3.7, компонента массива 3.6, конкретизация наст-ройки 12.3, массив 3.6, набор 3.8, настраиваемое тело 11.1, настраиваемый модуль 12, обозначение 3.8, обозначение типа 3.3.2, объект 3.2, ограничение 3.3, ограничение диапазона 3.5, ограничение дискриминанта 3.7.2, ограничение индекса 3.6.1, оператор блока 5.6, операция 3.3.3, отрезок 4.1.2, ошибочная ситуация 11, ошибочный 1.6, предвыполнение 3.1, 3.9, подпрограмма 6, подтип 3.3, прагма 2.8, программный модуль 6, простое имя 4.1, раздел описаний 3.9, размерность 3.6, распространение исключения 11.4, расширенное имя 4.1.3, совместимый 3.3.2, составной тип 3.3, спецификация пакета 7.1, ссылочное значение 3.8, ссылочный тип 3.8, субмодуль 10.2, тело задачи 9.1, тело пакета 7.1, тело подпрограммы 6.3, тип 3.3, числовая операция 3.5.5, 3.5.8, 3.5.10, числовой тип 3.5.

Пред. 

Уровень выше  След.

11.6. ИСКЛЮЧЕНИЯ И ОПТИМИЗАЦИЯ

 

Начало  Глава 12.

НАСТРАИВАЕМЫЕ МОДУЛИ




Начало  Назад  Вперед



Книжный магазин