An unhandled exception is one that has not been handled by an exception
handler associated with the call stack entry that first received the exception.
When an exception is unhandled, one of the following actions occurs:
If the message type is a function check (CPF9999)
associated with a cycle-main procedure then the
RPG default handler will issue an inquiry message describing the originating
condition.
- If you pick the D(ump) or C(ancel) option then the procedure which first
received the exception terminates and the function check is percolated to
the caller.
- If you pick the R(etry) or G(et Input) option then the function check
is handled, exception processing ends, and the procedure resumes processing
at *GETIN (when G is chosen) or at the I/O operation in which the exception
occurred (when R is chosen). For example, any read operation will be retried
if the read failed because of record locking.
For other types of messages the exception is percolated
up the call stack to the caller of the procedure. That procedure is presented
with the exception and given a chance to handle it. If it does not, then the
exception is percolated up the call stack until it reaches the control boundary,
at which point the exception is converted to a function check, and exception
handling starts over as described above.