Previous Topic: Recovery After Runtime ErrorsNext Topic: Error-handling Options for Runtime Messages


Recovery Procedures

Program Check Errors

For program check errors, such as invalid numeric data, overflows, and divide exceptions (messages 1, 3, 4, and 8), CA Culprit re-executes the associated code after it:

CA Culprit does not modify the field value in the input buffer or in working storage. However, it does substitute another value depending on the process statement where the error occurs:

Invalid Subscripts

For invalid subscripts (message 2), CA Culprit terminates processing for the report and issues the following message:

REPORT HAS BEEN TERMINATED

Invalid Use of Perform, Return, DB-EXIT

For invalid use of PERFORM, RETURN, or DB-EXIT instructions (messages 5, 6, and 7), CA Culprit terminates processing for the report and issues the following message:

REPORT HAS BEEN TERMINATED

Out-of-sequence Match-file Errors

For out-of-sequence match-file errors (message 10), no recovery procedures are necessary. CA Culprit continues processing and returns all records to the report logic.

Invalid Match-key Errors

For invalid match-key errors, CA Culprit continues processing, but assigns the invalid key the lowest value possible (for example, -999). CA Culprit matches the invalid key only with another invalid key value.

If higher-order match keys are specified and all are equal, a record with an invalid key will be considered lower in the collating sequence than records with a valid key. The associated record will therefore be delivered to the report logic before any other records.

Note: Invalid match keys do not affect sequence errors and are considered to be in the proper sequence. However, other match keys on the same record may cause an out-of-sequence condition.

Invalid Numeric Data in Select/Bypass

For invalid numeric data in SELECT/BYPASS logic (message 12), CA Culprit continues processing. CA Culprit assigns the invalid field the lowest possible value. For example, if the field is numeric, -999. For alphanumeric subscripted fields, (that is, the subscript is invalid), CA Culprit assigns hexadecimal zeros.

Invalid Subscript Values in Select/Bypass

For invalid subscript values in SELECT/BYPASS logic, CA Culprit abends the job and prints this message:

RUN TERMINATED, ABEND 998

Following this message, CA Culprit prints a system dump of all files, buffers, and work areas open at the time of the error.