In a CL program, you can monitor for a selected group of exceptions, or a single exception, based on the exception identifier. The only class2 values the exception handler will monitor for are _C2_MH_ESCAPE, _C2_MH_STATUS, _C2_MH_NOTIFY, and _C2_MH_FUNCTION_CHECK. For more information about using the #pragma exception handler directive, see the IBM® Rational® Development Studio for i: ILE C/C++ Compiler Reference. This table defines all the exception classes you can specify.
| Bit position | Header File Constant in <except.h> | Exception class |
|---|---|---|
| 0 | _C1_BINARY_OVERFLOW | Binary overflow or divide by zero |
| 1 | _C1_DECIMAL_OVERFLOW | Decimal overflow or divide by zero |
| 2 | _C1_DECIMAL_DATA_ERROR | Decimal data error |
| 3 | _C1_FLOAT_OVERFLOW | Floating-point overflow or divide by zero |
| 4 | _C1_FLOAT_UNDERFLOW | Floating-point underflow or inexact result |
| 5 | _C1_INVALID_FLOAT_OPERAND | Floating-point invalid operand or conversion error |
| 6 | _C1_OTHER_DATA_ERROR | Other data error, for example edit mask |
| 7 | _C1_SPECIFICATION_ERROR | Specification (operand alignment) error |
| 8 | _C1_POINTER_NOT_VALID | Pointer not set/pointer type invalid |
| 9 | _C1_OBJECT_NOT_FOUND | Object not found |
| 10 | _C1_OBJECT_DESTROYED | Object destroyed |
| 11 | _C1_ADDRESS_COMP_ERROR | Address computation underflow or overflow |
| 12 | _C1_SPACE_ALLOC_ERROR | Space not allocated at specified offset |
| 13 | _C1_DOMAIN_OR_STATE_VIOLATION | Domain/State protection violation |
| 14 | _C1_AUTHORIZATION_VIOLATION | Authorization violation |
| 15 | _C1_JAVA_THROWN_CLASS | Exception thrown for a Java™ class. |
| 16-28 | _C1_VLIC_RESERVED | VLIC reserved |
| 29 | _C1_OTHER_MI_EXCEPTION | Remaining MI-generated exceptions (other than function check) |
| 30 | _C1_MI_GEN_FC_OR_MC | MI-generated function check or machine check |
| 31 | _C1_MI_SIGEXP_EXCEPTION | Message generated via Signal Exception instruction |
| 32-39 | n/a | reserved |
| 40 | _C2_MH_ESCAPE | *ESCAPE |
| 41 | _C2_MH_NOTIFY | *NOTIFY |
| 42 | _C2_MH_STATUS | *STATUS |
| 43 | _C2_MH_FUNCTION_CHECK | function check |
| 44-63 | n/a | reserved |