Branching to error-handling subroutines

The REXX SIGNAL ON ERROR instruction tells REXX to leave the current line and branch to a label marked error when a nonzero return code is encountered.

This statement requires two parts:

  • SIGNAL ON ERROR instruction

    After every command, REXX puts the return code of the command in a variable called rc.

    If a command has a nonzero return code, REXX branches to the error label.

    SIGNAL ON ERROR returns errors from the QMF REXX procedure (ADDRESS QRW) command environment, but not the REXX callable interface.

  • Error label
    The SIGNAL ON ERROR instruction requires that you provide a label that the procedure can branch to if it encounters a nonzero return code. The label precedes your error handling code. The return code is in the variable rc. You can use this variable to branch to another subroutine, or you can use it in your EXIT instruction, as in the following example:
    /*  error handling code for a procedure with logic */
    error:
      exit rc