Языки программирования - концепции и принципы
Секс индивидуалки ярославль.

что активизирован блок, Срабатывающий при


Предположим, что активизирован блок, Срабатывающий при потере значимости с плавающей точкой. Тогда потенци-ально возможно воздействие на каждое выражение с плавающей точкой; дру-гими словами, каждое выражение с плавающей точкой содержит неявный вы-|зов блока и возврат из него. Это затрудняет выполнение оптимизации сохра-нения значений в регистрах или вынесения общих подвыражений.

11.3. Исключения в Ada

 

В языке Ada определен очень простой механизм обработки исключений, ко-

торый послужил моделью для других языков.

В Ada есть четыре предопределенных исключения:

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

Storage_Error (ошибка памяти). Недостаточно памяти.

Program_Error (программная ошибка). Нарушение правил языка, напри-

мер выход из функции без выполнения оператора return.

Tasking_Error (ошибка задачи). Ошибки, возникающие при взаимодейст- вии задач

(см. гл. 12).

     Конечно, Constraint_Error — наиболее часто встречающееся исключение, связанное со строгим контролем соответствия типов в языке Ada. Кроме того,

программист может объявлять исключения, которые обрабатываются точно

так же, как и предопределенные исключения.

     Когда исключительная ситуация наступает, в терминологии языка Ada —возбуждается (raised), вызывается блок кода, называемый обработчиком иск­лючения (exeption handler). В отличие от PL/I вызов обработчика завершает включающую процедуру. Так как обработчик не возвращается к нормальному вычислению, нет никаких помех для оптимизации. В отличие от обработчи­ков глобальных ошибок в С, обработка исключительных ситуаций в Ada чрез­вычайно гибкая, потому что обработчики исключений могут быть привязаны к любой подпрограмме:

procedure Main is

     procedure Proc is

           P: Node_Ptr;

     begin


Содержание  Назад  Вперед