Runtime error: Subscript 0 or index 11 out of bounds for table 'MY-TABLE' (OCCURS 10) – COBOL SUBSCRIPT_OUT_OF_BOUNDS

SUBSCRIPT_OUT_OF_BOUNDS

In COBOL le tabelle (OCCURS) sono indicizzate rigorosamente a partire da 1; accedere con un indice pari a 0 o superiore al limite massimo dell'OCCURS causa corruzione di memoria o abend del run-unit.

Cosa significa questo errore?

In COBOL le tabelle (OCCURS) sono indicizzate rigorosamente a partire da 1; accedere con un indice pari a 0 o superiore al limite massimo dell'OCCURS causa corruzione di memoria o abend del run-unit.

Messaggio originale

Runtime error: Subscript 0 or index 11 out of bounds for table 'MY-TABLE' (OCCURS 10)

Contesto e parole chiave

Alias

  • Subscript out of bounds COBOL table

Messaggi alternativi

  • indice tabella fuori limite inferiore o superiore

Prodotti

  • GnuCOBOL (cobc) / IBM Enterprise COBOL / Micro Focus

Piattaforme

  • AIX
  • IBM z/OS
  • Linux
  • Windows

Parole chiave

  • cobol
  • cobol.data.subscript-out-of-bounds-table
  • Data Division e Troncamento PIC
  • errore-cobol-subscript-out-of-bounds-table
  • file-status
  • gnucobol

Cause possibili

Causa tecnica per Errore COBOL: Subscript/Index out of bounds for table (Indice Tabella Fuori dai Limiti)

In COBOL le tabelle (OCCURS) sono indicizzate rigorosamente a partire da 1; accedere con un indice pari a 0 o superiore al limite massimo dell'OCCURS causa corruzione di memoria o abend del run-unit.

molto comune

Diagnosi

Diagnostica di esecuzione e file status per Errore COBOL: Subscript/Index out of bounds for table (Indice Tabella Fuori dai Limiti)

Ispezionare la variabile FILE-STATUS, i log di runtime o compilare con i controlli di integrità di GnuCOBOL (-Wall -Wextra -fdebugging-line).

Come leggere il risultato. Evidenzia violazioni dei margini di colonna, disallineamenti nelle clausole PIC o codici di ritorno anomali.

terminal
cobc -x -Wall -Wextra main.cob -o app

Risoluzione

Risoluzione standard per Errore COBOL: Subscript/Index out of bounds for table (Indice Tabella Fuori dai Limiti)

Difficoltà: mediaRischio: basso

Applicare la correzione al codice sorgente COBOL secondo le specifiche ANSI/ISO COBOL.

  1. Ispezionare il valore della variabile FILE STATUS o il numero di riga del compilatore
  2. Correggere la dichiarazione FD, la PICTURE o la sequenza di OPEN/READ/WRITE
  3. Ricompilare ed eseguire verificando la corretta terminazione con RETURN-CODE 0
terminal
cobc -x main.cob

Domande frequenti

Cosa significa Errore COBOL: Subscript/Index out of bounds for table (Indice Tabella Fuori dai Limiti) in COBOL?

In COBOL le tabelle (OCCURS) sono indicizzate rigorosamente a partire da 1; accedere con un indice pari a 0 o superiore al limite massimo dell'OCCURS causa corruzione di memoria o abend del run-unit.

Approfondimenti

Schede correlate