CONDITION - Fehlerkondition

REXX Built-In Funktionen
Fehler Behandlung

Syntax:                                 
CONDITION(<I/C/D/S>)
Instruction - Default - CALL/SIGNAL
Condition   - ERROR/NOVALUE...
Description - Zeile...
Status      - ON/OFF/DELAY

/* REXX CONDITION Copyright YCOS Yves Colliard Software 1990-2009 */
/* TRACE ?R  */
  /* einschalten des interaktiven Trace Modus */
  /* */
i=1
SIGNAL ON NOVALUE NAME u_rout    /* Fehler abfangen    */
a =  var1
after_sigerr:
  /* */
i=2
CALL ON ERROR NAME u_rout    /* Fehler abfangen    */
TRACZ ?R
  /* */
SAY "The End"
  /* */
EXIT
  /* */
u_rout:
say sigl "-" sourceline(sigl)  /* Zeile Nummer und Inhalt */
SAY "Instr." CONDITION()        /* Ausgabe: SIGNAL/CALL            */
SAY "Instr." CONDITION('I')     /* Ausgabe: SIGNAL/CALL            */
SAY "Cond. " CONDITION('C')     /* Ausgabe: ERROR/NOVALUE...       */
SAY "Descr." CONDITION('D')     /* Ausgabe: TRACZ ?R...            */
SAY "Status" CONDITION('S')     /* Ausgabe: ON/OFF/DELAY           */
select
when i=1 then do
  SIGNAL after_sigerr
end
otherwise
  CALL OFF ERROR
  RETURN
end
/* */