Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SAP(Контрольная работа №4).doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
318.46 Кб
Скачать
  1. Оператор message ... Raising.

  • Использование оператора message ... raising

У оператора message ... raising есть два режима работы:

  • если имя исключения после raising не обработано оператором call function, и others не закодировано, пользователю выдается сообщение

  • если имя исключения после raising обработано оператором call function, сообщение пользователю не выдается — вместо этого управление возвращается к оператору call function, и исключение обрабатывается так же, как и оператором raise

Синтаксис оператора message ... raising:

message tnnn(cc) [with v1 v2 ...] raising xname.

где:

t — тип сообщения (e, w, i, s, a или x)

nnn — номер сообщения

(cc) — класс сообщения

v1 и v2 — значения, которые будут вставлены в текст сообщения

xname — имя исключения, которое будет выполнено

Особенности оператора:

  • xname — имя исключения как и в операторе raise

  • если класс сообщения не определен здесь, он должен быть определен в операторе function-pool в TOP include для функциональной группы через дополнение message-id

  • установлены следующие sy-переменные: sy-msgid, sy-msgty, sy-msgno и sy-msgv1 через sy-msgv4. Они могут быть использованы в пределах программы запроса (после возвращения)

При выполнении оператора message ... raising поток управления зависит от типа сообщения и от того, обработано ли условие вызывающей программой (определенное в списке исключений в программе запроса):

  • Если условие обработано вызывающей программой, управление возвращается к вызывающей программе. Значения переменных sy-msg установлены. Значения экспорта, который передаются по значению, не возвращены

  • Если условие не обработано вызывающей программой для типов сообщений e, w и a, происходит выход из функционального модуля, и программа запроса немедленно завершается. Сообщение отображено, и список вывода пуст. Когда пользователь нажимает клавишу ENTER, пустой список удаляется, и пользователь возвращается к экрану, из которого была вызвана программа

  • Если условие не обработано вызывающей программой для типа сообщения i, в диалоговом окне отображается сообщение пользователю. Когда пользователь нажимает клавишу ENTER, управление возвращается к функциональному модулю к оператору, следующему за оператором message. Функциональный модуль продолжает обрабатываться, и оператором endfunction управление возвращается к программе запроса. Значения переменных sy-msg установлены, и значения экспорта, которые передаются по значению, возвращаются

  • Если условие не обработано вызывающей программой для типа сообщения s, сообщение хранится в системной области. Управление продолжается в пределах функционального модуля в операторе, следующем за оператором message. Функциональный модуль продолжает обрабатываться, и оператором endfunction управление возвращается к программе запроса. Значения переменных sy-msg установлены, и значения экспорта, которые передаются по значению, возвращаются. Когда отображается список, сообщение появляется внизу списка в строке состояния

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]