Error Handlers An error handler is a block of code containing statements to be executed if TPU generates a warning or an error. Error handlers are optional and may be used either in procedures or in programs. When used in programs (outside procedures) they must be placed after all the global declarations of constants, variables and procedures, and before any executable statements. Only one error handler can be used in each procedure, and only one one can be used per program (outside procedures). TPU error handlers are not usually recursive; that is, they do not apply their own statements to errors that arise while the error handler itself is being executed. However, CTRL/C routines are an exception; they ARE recursive. Types of Error Handlers in TPU TPU has two types of error handlers: procedure-style and case-style. The following example shows the syntax of a procedure-style error handler: ON_ERROR MESSAGE (ERROR_TEXT); MESSAGE ("Error on line " + STR (ERROR_LINE)); RETURN; ENDON_ERROR The following example shows the syntax of a case-style error handler: ON_ERROR [TPU$_CONTROLC]: MESSAGE (ERROR_TEXT); RETURN (LEARN_ABORT); [OTHERWISE]: MESSAGE( ERROR_TEXT); RETURN; ENDON_ERROR Case-style error handlers are similar to TPU case statements. The statements in the handler have the general format: [error-keyword1,...error-keywordn] : statement1;...statementn; The the selectors on the left-hand side of the colon in each statement must be either of the following: o TPU keywords indentifying errors or warnings o The keyword OTHERWISE Case-style error handlers allow you to do the following: o Trap the TPU$_CONTROLC status o Specify an [OTHERWISE] selector specifying how to handle all errors and warnings that are not covered by specific selectors in the error handler. o Suppress display of error and warning messages For more information on using error handlers, please refer to the VSI Text Processing Utility Manual. Related Topics CALL_USER ERROR ERROR_LINE ERROR_TEXT LEARN_ABORT MESSAGE MESSAGE_FLAGS MESSAGE_TEXT RETURN