Введение в программирование - Учебное пособие (Корочкин А. В.)

10.4 подавление проверок

Для отмены возможности возбуждения выбранных исключений можно воспользоваться прагмой SUPPRES. Такое указание компиля­тору называется подавление проверок и его можно сделать как для всей программы, так и в пределах ее части. Описание прагмы   SUPPRES:

Для всей программы:

pragma     SUPPRES (Имя_Проверки) ; Для конкретного обьекта, типа, подпрограммы и др.:

pragma     SUPPRES ( Имя_Проверки,   ON = > Имя);

Если используется вторая форма прагмы Suppres с именем, то прагма распространяется на все операции с обьектами, имеющими это имя :

•   все обьекты базового типа для указанного в прагме типа (подтипа);

•   вызов подпрограмм с указанным именем ;

•   активизацию задач с указанным именем (задачного типа );

•   конкретизацию указанного настраиваемого модуля.

Прагма Suppres должна размещаться непосредственно в разделе описаний или спецификации пакета. Ее действие распространяется от прагмы до конца зоны описания данного блока или модуля.

Для каждой исключительной ситуации в языке определен перечень проверок. Например, для исключительной ситуации Constraint_Error имеются проверки ссылок ( Access_Check ), дискриминантов ( Dis-criminant_Check), индексов (lndex_Check ), длины ( Length_Check ), диапазона ( Range_Check ).

П Например :

pragma      Suppres (lndex_Check );

Здесь прагма отменяет ( подавляет ) проверку   границ массивов и индексов компонент массива в исключении    Constraint_Error.

pragma     Suppres ( Discriminant_Check, ON => Elem );

подавляет проверку дискриминанта для всех обьектов  типа   Elem.

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

Внимание ! Подавление проверок может сократить обьем програм­мы после компилирования и повысить скорость ее выполнения. Однако при этом следует помнить, что этот выигрыш достигается за счет сни­жения ее надежности.