En este módulo, aprenderemos sobre las técnicas de manejo de errores en COBOL. El manejo adecuado de errores es crucial para desarrollar programas robustos y confiables. COBOL proporciona varias herramientas y métodos para detectar, manejar y reportar errores de manera efectiva.
Contenido
Introducción al Manejo de Errores
El manejo de errores en COBOL implica la detección y gestión de condiciones anómalas que pueden ocurrir durante la ejecución de un programa. Estas condiciones pueden incluir errores de entrada/salida, errores de lógica, y otros problemas que pueden afectar el funcionamiento del programa.
Tipos de Errores en COBOL
- Errores de Sintaxis: Ocurren cuando el código no sigue las reglas gramaticales del lenguaje COBOL.
- Errores de Ejecución: Ocurren durante la ejecución del programa, como intentos de dividir por cero o acceder a un archivo inexistente.
- Errores Lógicos: Ocurren cuando el programa no produce el resultado esperado debido a un error en la lógica del código.
Uso de la Declaración FILE STATUS
La declaración FILE STATUS
se utiliza para capturar el estado de las operaciones de archivo. Esta declaración asigna un código de estado a una variable que puede ser verificada después de cada operación de archivo.
Ejemplo de FILE STATUS
IDENTIFICATION DIVISION. PROGRAM-ID. FileStatusExample. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT InputFile ASSIGN TO 'input.dat' ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-File-Status. DATA DIVISION. FILE SECTION. FD InputFile. 01 InputRecord PIC X(100). WORKING-STORAGE SECTION. 01 WS-File-Status PIC XX. PROCEDURE DIVISION. OPEN INPUT InputFile IF WS-File-Status NOT = '00' DISPLAY 'Error opening file: ' WS-File-Status STOP RUN END-IF. READ InputFile INTO InputRecord AT END DISPLAY 'End of file reached.' NOT AT END DISPLAY 'Record: ' InputRecord END-READ. CLOSE InputFile. STOP RUN.
En este ejemplo, WS-File-Status
captura el estado de la operación de apertura del archivo. Si el estado no es '00', se muestra un mensaje de error y el programa se detiene.
Manejo de Errores en Operaciones de Entrada/Salida
Las operaciones de entrada/salida (I/O) son propensas a errores, como archivos no encontrados o problemas de permisos. COBOL proporciona varias formas de manejar estos errores.
Ejemplo de Manejo de Errores en I/O
IDENTIFICATION DIVISION. PROGRAM-ID. IOErrorHandling. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT InputFile ASSIGN TO 'input.dat' ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-File-Status. DATA DIVISION. FILE SECTION. FD InputFile. 01 InputRecord PIC X(100). WORKING-STORAGE SECTION. 01 WS-File-Status PIC XX. PROCEDURE DIVISION. OPEN INPUT InputFile IF WS-File-Status NOT = '00' DISPLAY 'Error opening file: ' WS-File-Status STOP RUN END-IF. PERFORM UNTIL WS-File-Status = '10' READ InputFile INTO InputRecord AT END MOVE '10' TO WS-File-Status NOT AT END DISPLAY 'Record: ' InputRecord END-READ END-PERFORM. CLOSE InputFile. STOP RUN.
En este ejemplo, se maneja el error de fin de archivo (WS-File-Status = '10'
) dentro de un bucle PERFORM
.
Uso de la Declaración USE AFTER ERROR
La declaración USE AFTER ERROR
se utiliza para especificar un procedimiento que se ejecutará después de que ocurra un error en una operación de archivo.
Ejemplo de USE AFTER ERROR
IDENTIFICATION DIVISION. PROGRAM-ID. UseAfterErrorExample. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT InputFile ASSIGN TO 'input.dat' ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-File-Status USE AFTER ERROR PROCEDURE ON InputFile. DATA DIVISION. FILE SECTION. FD InputFile. 01 InputRecord PIC X(100). WORKING-STORAGE SECTION. 01 WS-File-Status PIC XX. PROCEDURE DIVISION. OPEN INPUT InputFile IF WS-File-Status NOT = '00' DISPLAY 'Error opening file: ' WS-File-Status STOP RUN END-IF. READ InputFile INTO InputRecord AT END DISPLAY 'End of file reached.' NOT AT END DISPLAY 'Record: ' InputRecord END-READ. CLOSE InputFile. STOP RUN. USE AFTER ERROR PROCEDURE ON InputFile. DISPLAY 'An error occurred: ' WS-File-Status. STOP RUN.
En este ejemplo, si ocurre un error en cualquier operación de archivo, se ejecutará el procedimiento especificado en USE AFTER ERROR
.
Ejercicios Prácticos
Ejercicio 1: Manejo de Errores de Apertura de Archivo
Instrucciones: Escribe un programa COBOL que intente abrir un archivo para lectura. Si el archivo no existe, el programa debe mostrar un mensaje de error y terminar.
Solución:
IDENTIFICATION DIVISION. PROGRAM-ID. FileOpenError. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT InputFile ASSIGN TO 'nonexistent.dat' ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-File-Status. DATA DIVISION. FILE SECTION. FD InputFile. 01 InputRecord PIC X(100). WORKING-STORAGE SECTION. 01 WS-File-Status PIC XX. PROCEDURE DIVISION. OPEN INPUT InputFile IF WS-File-Status NOT = '00' DISPLAY 'Error opening file: ' WS-File-Status STOP RUN END-IF. CLOSE InputFile. STOP RUN.
Ejercicio 2: Manejo de Errores en Lectura de Archivo
Instrucciones: Escribe un programa COBOL que lea registros de un archivo. Si ocurre un error durante la lectura, el programa debe mostrar un mensaje de error y continuar con el siguiente registro.
Solución:
IDENTIFICATION DIVISION. PROGRAM-ID. FileReadError. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT InputFile ASSIGN TO 'input.dat' ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS WS-File-Status. DATA DIVISION. FILE SECTION. FD InputFile. 01 InputRecord PIC X(100). WORKING-STORAGE SECTION. 01 WS-File-Status PIC XX. PROCEDURE DIVISION. OPEN INPUT InputFile IF WS-File-Status NOT = '00' DISPLAY 'Error opening file: ' WS-File-Status STOP RUN END-IF. PERFORM UNTIL WS-File-Status = '10' READ InputFile INTO InputRecord AT END MOVE '10' TO WS-File-Status NOT AT END IF WS-File-Status NOT = '00' DISPLAY 'Error reading record: ' WS-File-Status ELSE DISPLAY 'Record: ' InputRecord END-IF END-READ END-PERFORM. CLOSE InputFile. STOP RUN.
Conclusión
En esta sección, hemos aprendido sobre las técnicas de manejo de errores en COBOL. Hemos cubierto cómo utilizar la declaración FILE STATUS
para capturar el estado de las operaciones de archivo, cómo manejar errores en operaciones de entrada/salida, y cómo utilizar la declaración USE AFTER ERROR
para especificar procedimientos de manejo de errores. Además, hemos practicado estos conceptos con ejercicios prácticos.
El manejo adecuado de errores es esencial para desarrollar programas COBOL robustos y confiables. En el próximo módulo, exploraremos técnicas de depuración para identificar y corregir errores en los programas COBOL.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL