declare catch


(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.

Related Concepts