is catchable

operator

Return type:
Switch
Returns:
Returns true if the named catch is active at this point in the program, and false otherwise. Replacing is with isnt will reverse the results.
Syntax
named-throw (is | isnt) catchable


Purpose

Tests whether the named catch is active at this point in the program. A catch is active only when it is in a scope that is currently executing.

The named catch can be any of the following:

  • a programmer-defined catch name
  • #program-error
  • #external-throw

A compile-time error results if the named catch is not declared within the program.

The following code uses is catchable to see if there is a currently active catch named empty-recordset before throwing to it:

  do when empty-recordset is catchable
     throw empty-recordset
  else
     log-message "Received an empty record-set."
     halt with 1
  done

Related Concepts