Handling errors when calling programs
When a program dynamically calls a separately
compiled
program, the called program might be unavailable. For example, the
system might be out of storage or unable to locate the program
object. If the CALL
statement does not have
an ON EXCEPTION
or ON OVERFLOW
phrase,
your application might abend.
About this task
Use the ON
EXCEPTION
phrase to perform
a series of statements and to perform your own error handling. For
example, in the code fragment below, if program REPORTA
is
unavailable, control passes to the ON EXCEPTION
phrase.
MOVE "REPORTA" TO REPORT-PROG
CALL REPORT-PROG
ON EXCEPTION
DISPLAY "Program REPORTA not available, using REPORTB."
MOVE "REPORTB" TO REPORT-PROG
CALL REPORT-PROG
END-CALL
END-CALL
The ON EXCEPTION
phrase applies only to the availability
of the called program on its initial load. If the called
program is loaded but fails for any other reason (such as initialization), the ON
EXCEPTION
phrase is not performed.