====== ILE C Exception Handling ====== Normally C knows nothing of exceptions and thus has no exception handling. It communicates via return codes and signals. On IBM i there is the concept of messages and escape messages are exceptions which abort the execute of code. In ILE C there is the option of using ''#pragma exception_handler'' to handle these exception either in an extra handler function or by jumping to a label. #include #include #include #include #include void handleError(_INTRPT_Hndlr_Parms_T * __ptr128 parms); int main(void) { volatile int value = 12; int divisor = 0; int result; #pragma exception_handler(handleError, value, _C1_ALL, _C2_MH_ESCAPE, _CTLA_HANDLE) result = value / divisor; #pragma disable_handler printf("continued\n"); return 0; } void handleError(_INTRPT_Hndlr_Parms_T * __ptr128 parms) { int * commAreaValue = parms->Com_Area; printf("value %d\n", *commAreaValue); printf("error handled\n"); } {{tag>ibm devel c}}