Enclave termination can occur due to reasons other than an unhandled
condition of severity 2, 3, or 4. These include:
- A language STOP-like construct such as a C abort(), raise(SIGABRT), exit() function
call, COBOL STOP RUN, or PL/ISTOP
or EXIT statement.
When one of these statements is encountered,
the T_I_S (Termination Imminent Due to STOP) condition is signaled.
- A return from the main routine
- A Language Environment-initiated
abend
- A user-requested abend (call to CEE3ABD or ILBOABN0)
You can
call CEE3ABD to request an abend either with or without clean-up.
If the abend is issued without clean-up, T_I_U (Termination Imminent
due to an Unhandled condition) is not raised. See z/OS Language Environment Programming Reference
for more information about the CEE3ABD
callable service.
If you call CEE3ABD and request an abend
with clean-up, or you call ILBOABN0 from a COBOL program,
T_I_U is signaled. Condition handlers are given a chance to handle
the abend. If the abend remains unhandled, normal Language Environment termination
activities occur. For example, the C atexit list
is honored if a C routine
is present on the stack, and the Language Environmentassembler
user exit gains control.