La gestió d'errors és una part fonamental de qualsevol llenguatge de programació, i COBOL no és una excepció. En aquest tema, aprendrem com detectar, gestionar i respondre als errors en els programes COBOL. Això inclou l'ús de codis de retorn, la gestió d'excepcions i altres tècniques per assegurar que els programes funcionin de manera robusta i fiable.

Objectius d'Aprenentatge

Al final d'aquest tema, hauràs après:

  • Com utilitzar codis de retorn per detectar errors.
  • Com implementar la gestió d'excepcions en COBOL.
  • Com utilitzar les sentències ON ERROR i INVALID KEY.
  • Bones pràctiques per a la gestió d'errors en COBOL.

  1. Codis de Retorn

Els codis de retorn són una manera comuna de gestionar errors en COBOL. Quan una operació es completa, el programa pot retornar un codi que indica si l'operació ha estat exitosa o si ha fallat.

Exemple de Codi de Retorn

IDENTIFICATION DIVISION.
PROGRAM-ID. ErrorHandlingExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  FILE-STATUS-CODE  PIC XX.

PROCEDURE DIVISION.
    OPEN INPUT myFile
    IF FILE-STATUS-CODE NOT = "00"
        DISPLAY "Error opening file. Status code: " FILE-STATUS-CODE
        STOP RUN
    END-IF.

    READ myFile
    AT END
        DISPLAY "End of file reached."
    NOT AT END
        IF FILE-STATUS-CODE NOT = "00"
            DISPLAY "Error reading file. Status code: " FILE-STATUS-CODE
            STOP RUN
        END-IF
    END-READ.

    CLOSE myFile.
    STOP RUN.

Explicació

  • FILE-STATUS-CODE: Una variable que emmagatzema el codi de retorn de les operacions de fitxer.
  • OPEN INPUT myFile: Obre el fitxer per a lectura.
  • IF FILE-STATUS-CODE NOT = "00": Comprova si l'operació d'obertura ha estat exitosa. Un codi de retorn de "00" indica èxit.
  • READ myFile: Llegeix un registre del fitxer.
  • AT END: Gestió de la condició de final de fitxer.
  • NOT AT END: Comprova si hi ha hagut un error en la lectura.

  1. Gestió d'Excepcions

COBOL proporciona mecanismes per gestionar excepcions, com ara les sentències ON ERROR i INVALID KEY.

Sentència ON ERROR

La sentència ON ERROR s'utilitza per gestionar errors en operacions de fitxer.

Exemple d'Ús de ON ERROR

IDENTIFICATION DIVISION.
PROGRAM-ID. OnErrorExample.

DATA DIVISION.
FILE SECTION.
FD  myFile
    LABEL RECORDS ARE STANDARD
    BLOCK CONTAINS 0 RECORDS
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS myFileRecord.
01  myFileRecord  PIC X(80).

WORKING-STORAGE SECTION.
01  FILE-STATUS-CODE  PIC XX.

PROCEDURE DIVISION.
    OPEN INPUT myFile
    ON ERROR
        DISPLAY "Error opening file. Status code: " FILE-STATUS-CODE
        STOP RUN
    END-OPEN.

    READ myFile
    AT END
        DISPLAY "End of file reached."
    NOT AT END
        ON ERROR
            DISPLAY "Error reading file. Status code: " FILE-STATUS-CODE
            STOP RUN
        END-READ.

    CLOSE myFile.
    STOP RUN.

Explicació

  • ON ERROR: Captura errors en l'operació especificada (en aquest cas, OPEN i READ).
  • END-OPEN i END-READ: Marquen el final del bloc ON ERROR.

  1. Sentència INVALID KEY

La sentència INVALID KEY s'utilitza per gestionar errors en operacions de fitxer indexat o relatiu.

Exemple d'Ús de INVALID KEY

IDENTIFICATION DIVISION.
PROGRAM-ID. InvalidKeyExample.

DATA DIVISION.
FILE SECTION.
FD  indexedFile
    LABEL RECORDS ARE STANDARD
    BLOCK CONTAINS 0 RECORDS
    RECORD CONTAINS 80 CHARACTERS
    DATA RECORD IS indexedFileRecord.
01  indexedFileRecord  PIC X(80).

WORKING-STORAGE SECTION.
01  FILE-STATUS-CODE  PIC XX.

PROCEDURE DIVISION.
    OPEN I-O indexedFile
    IF FILE-STATUS-CODE NOT = "00"
        DISPLAY "Error opening file. Status code: " FILE-STATUS-CODE
        STOP RUN
    END-IF.

    READ indexedFile
    INVALID KEY
        DISPLAY "Invalid key error. Status code: " FILE-STATUS-CODE
        STOP RUN
    END-READ.

    CLOSE indexedFile.
    STOP RUN.

Explicació

  • INVALID KEY: Captura errors relacionats amb claus invàlides en operacions de fitxer indexat o relatiu.

  1. Bones Pràctiques per a la Gestió d'Errors

  • Sempre comprova els codis de retorn: Assegura't de comprovar els codis de retorn després de cada operació de fitxer.
  • Utilitza blocs ON ERROR i INVALID KEY: Aquests blocs ajuden a gestionar errors de manera més clara i estructurada.
  • Proporciona missatges d'error clars: Els missatges d'error han de ser clars i informatius per facilitar la depuració.
  • Documenta el codi: Documenta les possibles condicions d'error i com es gestionen.

Resum

En aquest tema, hem après com gestionar errors en COBOL utilitzant codis de retorn, la sentència ON ERROR i la sentència INVALID KEY. També hem revisat algunes bones pràctiques per assegurar que els nostres programes siguin robustos i fàcils de depurar. La gestió d'errors és essencial per a la creació de programes fiables i mantenibles, i COBOL proporciona diverses eines per aconseguir-ho.

© Copyright 2024. Tots els drets reservats