Язык процедур 2-REXX для OS-2

SIGNAL


Инструкция SIGNAL используется для выполнения аварийного изменения потока управления или, если указаны ON или OFF, для управления отслеживанием некоторых условий.

Для управления отслеживанием укажите OFF или ON и условие, которое Вы хотите отследить. Значение OFF прекращает процесс отслеживания указанного условия. Значение ON запускает процесс отслеживания указанного условия.

Прим. Для получения информации по отслеживанию требуемых условий обращайтесь к документу Язык процедур 2/REXX для OS/2. Справочник.

Чтобы изменить поток управления, имя метки выбирается из имени-метки или принимается как результат вычисления выражения, следующего за VALUE. В качестве имени-метки можно указать символ, трактующийся буквально, или текстовую строку, которая является константой. Вложенное ключевое слово VALUE можно опустить, если выражение не начинается символом или текстовой строкой (например, если оно начинается со специального знака, такого как оператор или скобка). Все активные незавершенные инструкции DO, IF, SELECT и INTERPRET в текущей программе завершаются; т.е. их невозможно активизировать повторно. Затем управление передается первой метке в программе, которая соответствует требуемой строке.

Пример: Signal fred; /* Переходит на метку "FRED" */ .... .... Fred: say 'Привет!'

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

Когда управление передается на указанную метку, специальной переменной SIGL присваивается значение, равное номеру строки с инструкцией SIGNAL. Это помогает при отладке программы, так как можно определить, откуда был выполнен переход на метку.

Использование SIGNAL с инструкцией INTERPRET

Если инструкция SIGNAL выдается как результат выполнения инструкции INTERPRET или происходит событие, которое отслеживается, то остаток интерпретируемой строки не просматривается с целью поиска указанной метки. В действительности метки внутри интерпретируемых строк игнорируются.



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