Ада-95. Компилятор GNAT

       

Исключение Program_Error


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

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

    так и не встретив инструкцию возврата (return ...)

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

    Кроме того, это исключение может возбуждаться в случае возникновения ошибки элаборации.

    procedure Program_Demo is

    Z : Integer;

    function Y(X : Integer) return Integer is

    begin

    if X < 10 then

    return X; elsif X < 20 then

    return X end if; end Y; -- если мы попали в эту точку, то это значит, -- что return не был выполнен

    begin

    Z := Y(30); end Program_Demo;



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