4.4.2 Pitfalls when Using Condition Traps
There are several pitfalls when using conditions:

·    Remember that some information are saved across the
  functions. Both the current trapped condition and the settings of
  the traps.  Consequently, you can not set a trap in a procedure
  level from a lower level. (I.e. calling a subroutine to set a trap
  is will not work.)

·    Remember that SIGL is set when trapped by method CALL.  This
  means that whenever a condition might be trapped by CALL, the SIGL
  will be set to a new value. Consequently, never trust the contents
  of the SIGL variable for more than one clause at a time. This is
  very frustrating, but at least it will not happen often. When it
  do happen, though, you will probably have a hard time debugging
  it.

·    Also remember that if you use the PROCEDURE clause in a
  condition handler called by method CALL, remember to EXPOSE the
  special variables SIGL if you want to use it inside the condition
  handler. Else it will be shadowed by the PROCEDURE.



PREV NEXT