Compaq DEC Text Processing Utility AA-PWCBD-TE User Manual
Page 92
Lexical Elements of the DEC Text Processing Utility Language
4.9 Reserved Words
Example 4–11 Procedure with a Case-Style Error Handler
PROCEDURE eve$learn_abort
ON_ERROR
[TPU$_CONTROLC]:
MESSAGE (ERROR_TEXT);
RETURN (LEARN_ABORT);
ENDON_ERROR;
IF LEARN_ABORT
THEN
eve$message (EVE$_LEARNABORT);
RETURN (TRUE);
ELSE
RETURN (FALSE);
ENDIF;
ENDPROCEDURE;
If a program or procedure has a case-style error handler, DECTPU handles errors
and warnings as follows:
•
If you press Ctrl/C, DECTPU determines whether the error handler contains
a selector labeled TPU$_CONTROLC. If so, DECTPU sets ERROR to TPU$_
CONTROLC, ERROR_LINE to the line that DECTPU was executing when
Ctrl/C was pressed, and ERROR_TEXT to the message associated with TPU$_
CONTROLC. DECTPU then executes the statements associated with the
selector. If there is no TPU$_CONTROLC selector, DECTPU exits from the
error handler and looks for a TPU$_CONTROLC selector in the procedures
or program (if any) in which the current procedure is nested. If no TPU$_
CONTROLC selector is found in the containing procedures or program,
DECTPU places the message associated with TPU$_CONTROLC in the
message buffer.
•
If an error or warning is generated during a CALL_USER routine, ERROR is
set to a keyword that represents the failure status of the routine, ERROR_
LINE is set to the line number of the error, and ERROR_TEXT is set to
the warning or error message associated with the keyword. DECTPU then
processes the error handler that trapped the CALL_USER error in the same
way that DECTPU processes normal case-style error handlers.
•
For other warnings and errors, ERROR is set to a keyword that represents
the error or warning, ERROR_LINE is set to the line number of the error,
and ERROR_TEXT is set to the error or warning message associated with the
keyword.
The way a case-style error handler processes an error or warning depends
on how the error handler traps the error. There are three possible ways, as
follows:
–
The error handler can trap the error by using a selector that matches the
error exactly (that is, using a selector other than OTHERWISE).
–
The error handler can trap the error by using the OTHERWISE selector.
–
The error handler can completely fail to trap the error.
The following discussion explains how a case-style error handler processes an
error or warning in each of these circumstances.
4–26 Lexical Elements of the DEC Text Processing Utility Language