💻 COBOL
COBOL ERROR Handling Patterns
Intermediate 🕑 15 min read
👁 1 views
COBOL ERROR Handling Patterns
Effective error handling is crucial for robust COBOL programs.
File Status Checking
```cobol READ INPUT-FILE AT END SET WS-EOF TO TRUE END-READ. IF NOT FS-SUCCESS PERFORM ERROR-HANDLER END-IF. ```
Declaratives for Errors
```cobol DECLARATIVES. FILE-ERROR SECTION. USE AFTER ERROR PROCEDURE ON INPUT-FILE. DISPLAY 'File Error: ' WS-FILE-STATUS. END DECLARATIVES. ```
Common Error Patterns
- Check after every I/O
- Use 88-levels for status
- Centralize error handling
- Log errors with context
Exception Handling
```cobol COMPUTE result = a / b ON SIZE ERROR MOVE 0 TO result SET CALC-ERROR TO TRUE END-COMPUTE. ```
RETURN-CODE Convention
- 0: Success
- 4: Warning
- 8: Error
- 12: Severe
- 16: Critical
Code Example
IDENTIFICATION DIVISION.
PROGRAM-ID. ERROR-DEMO.
DATA DIVISION.
FILE SECTION.
FD INPUT-FILE.
01 INPUT-REC PIC X(80).
WORKING-STORAGE SECTION.
01 WS-FS PIC XX.
88 FS-OK VALUE '00'.
88 FS-EOF VALUE '10'.
88 FS-ERROR VALUE '30' THRU '99'.
01 WS-DIV PIC 9(3).
01 WS-RESULT PIC 9(5).
PROCEDURE DIVISION.
DECLARATIVES.
FILE-ERR SECTION.
USE AFTER ERROR ON INPUT-FILE.
DISPLAY 'File error: ' WS-FS
MOVE 16 TO RETURN-CODE.
END DECLARATIVES.
MAIN-SECTION SECTION.
OPEN INPUT INPUT-FILE
IF NOT FS-OK
PERFORM ERROR-HANDLER
END-IF
MOVE 0 TO WS-DIV
DIVIDE 100 BY WS-DIV GIVING WS-RESULT
ON SIZE ERROR
DISPLAY 'Division by zero'
MOVE 0 TO WS-RESULT
END-DIVIDE
STOP RUN.
ERROR-HANDLER.
DISPLAY 'Error occurred: ' WS-FS
MOVE 8 TO RETURN-CODE.