declaration/definition
(declare | export | require) catch catch-name catch-argument-list
You can use declare catch to declare the name and the parameters of a catch that you
will use elsewhere in your program. The following declares a catch named no-planet:
declare catch no-planet
A catch declared in a module may use export instead of declare to make it
available to the importing program or module.
A catch declared in a module may use require instead of declare. The
program or module that imports this module must supply a catch, using a supply clause in
the import statement. The supplied catch must match the required one in all respects except its name
and the names of its arguments.
The catch declaration can also declare parameters, following the same form as function
parameters. value, modifiable, read-only, and write-only are
supported, but not remainder. The optional keyword is not supported. All heralded catch
arguments are optional by default. See define function for a full description of function parameters.
The following is an example of a catch declaration with parameters:
declare catch invalid-item value string item-name error value string error recovery value string recovery
catches can use either the heralded or parenthesised form for declaring arguments, just like
function definitions. The same considerations as for functions apply to choosing one or the other.
It is a compile-time error to use a catch that has not been declared. It is also a compile-time
error to declare the same catch twice.