La Página de DriverOp

Códigos de excepción en RM/COBOL 85

Listado de códigos de excepción o "número de error" en RM/COBOL 85.

Sin importar cuál conjunto de códigos de excepción se esté mostrando, cualquier código que comienza con "0" indica una "operación exitosa". Cualquier código de excepción que comienza con "1" se considera una condición "at end" (final alcanzado). Cualquier código que comienza con "2" se considera una condición "invalid key" (clave inválida). Entre paréntesis se indica la sentencia que causa la excepción.

Código de excepción Condición
00 Operación exitosa.
02 La clave actual referenciada en el registro que se acaba de leer está duplicada en el siguiente registro. (READ NEXT)
02 La operación agregó una clave duplicada al archivo donde las claves duplicadas están permitidas. (WRITE, REWRITE)
05 Archivo opcional no se encuentra. Si el modo de apertura es I-O o EXTEND, entonces el archivo fue creado. DELETE FILE devuelve también este código cuando el archivo no se encuentra. (OPEN, DELETE FILE)
07 La sentencia CLOSE UNIT/REEL se ejecutó para un archivo que no está en una cinta. La operación fue exitosa.
0M La operación fue exitosa pero algunas características opcionales no se usaron. Por ejemplo, si se abre un archivo para el cual se especificó una secuencia de recopilación pero el sistema de archivo no posee esa característica, entonces la operación fue exitosa pero se devuelve este código.
10 Fin de archivo. (READ NEXT)
14 Se intentó una sentencia READ secuencial para un archivo relativo y el número de dígitos en el número de registros relativos es más grande que el tamaño de la variable usada como índice. (READ NEXT)
21 La clave primaria se escribió fuera de secuencia, o bién la clave primaria en una operación de reescritura (REWRITE) no coincide con el último registro leído. Éste error ocurre solo en archivos con organización secuencial indexada (INDEXED) y modo de acceso secuencial (SEQUENTIAL). (WRITE, REWRITE)
22 Se encontró una clave duplicada no permitida. (WRITE, REWRITE)
23 Registro no encontrado.
24 Disco lleno para archivos con organización RELATIVE o INDEXED. (WRITE)
24,01 Una sentencia de escritura secuencial (WRITE) se ejecutó en un archivo con organización relativa y el número de dígitos en el número de registros relativos es más grande que el tamaño de la variable usada como índice. (WRITE)
30 Error permanente. Este es cualquier otro error no descripto. El código secundario lo establece el sistema operativo donde se ejecuta el programa. Se deberá consultar el manual de usuario del sistema operativo.
34 Disco lleno para archivos secuenciales o de ordenación. (WRITE, SORT)
35 Archivo no encontrado. (OPEN, SORT)
37,01 El archivo que se está abriendo no está en un dispositivo de almacenamiento masivo el cual se requiere para este tipo de archivos o para esta operación de apertura. Por ejemplo, intentar un OPEN OUTPUT o I-O en una unidad de CD-ROM o bien INPUT o I-O sobre una impresora. (OPEN)
37,07 Permiso denegado. El usuario no tiene suficientes privilegios para acceder a este archivo. (OPEN)
37,08 Se intenta abrir un archivo de impresora en modo INPUT. (OPEN)
37,09 Se intenta abrir un archivo secuencial para entrada-salida y el archivo tiene especificado la remoción automática de espacios iniciales. (OPEN)
37,99 Un "runtime" para Windows o Windows NT que no está habilitado para redes intentó accedes a un archivo en una máquina remota.
38 Archivo cerrado con la opción LOCK por esta unidad de ejecución. (OPEN)
39,xx El archivo existente está en conflicto con la descripción SELECT o FD. (OPEN) El código secundario puede tomar alguno de estos valores:
01 - La declaración no concuerda pero la causa es desconocida (este código lo devuelve el sistema de archivos)
02 - La declaración no concuerda con el tamaño máximo del registro.
03 - La declaración no concuerda con el tamaño mínimo del registro.
04 - La declaración no concuerda en el número de índices del archivo.
05 - La declaración no concuerda en la descripción del índice primario.
06 - La declaración no concuerda en la descripción del primer índice secundario.
07 - La declaración no concuerda en la descripción del segundo índice secundario.
La lista continua por cada índice alternativo.
41 El archivo ya está abierto. (OPEN)
42 El archivo no está abierto. (CLOSE)
42 El archivo no está abierto. (UNLOCK)
43 No hay registro actual definido para un archivo con modo de acceso secuencial. (REWRITE, DELETE)
44 El tamaño del registro ha cambiado. El registro que está siendo escrito tiene un tamaño diferente del que existe en el archivo y la organización del archivo no permite esto (REWITE). Este código de excepción también puede ocurrir cuando el registro es demasiado grande o demasiado pequeño de acuerdo a lo declarado en la cláusula opcional RECORD de la FD. (WRITE, REWRITE)
46 No hay un registro actual. Esto generalmente ocurre cuando se ha efectuado un START que falló, dejando el puntero del archivo en estado indefinido. (READ NEXT)
47,01 El archivo no se abrió en modo INPUT o I-O. (READ, START)
47,02 El archivo no está abierto. (READ, START)
48,01 El archivo está definido con modo de acceso SEQUENTIAL y fue abierto en modo I-O, o el archivo está abierto en modo INPUT (de lectura solamente). (WRITE)
48,02 El archivo no está abierto. (WRITE)
49,01 El archivo no está abierto en modo I-O. (REWRITE, DELETE)
49,02 El archivo no está abierto. (REWRITE, DELETE)
93 El archivo está bloqueado por otro usuario. (OPEN)
94,10 Demasiados archivos abiertos por el proceso actual. (OPEN)
94,62 Uno de los valores para LINAGE de este archivo es inválido o está fuera de rango. (OPEN, WRITE)
94,63 Clave no especificada. (indicando una tabla cuyo tamaño es cero) en una sentencia SORT o MERGE.
98,xx (Comienza a rezar, oh my God!) El archivo indexado está corrupto. Ha sido detectado un error interno en un archivo con organización secuencial indexada. El código de excepción secundario (y resa para que no sea el 03!) contiene el número de error interno. El archivo debería ser reconstruido usando la utilidad apropiada (será mejor que tengas a la mano el RECOVERY.BAT... y no dejes de rezar!).
99 Registro bloqueado por otro usuario.
9A Memoria insuficiente para esta operación. Generalmente ocurre cuando se ejecuta SORT, el cual requiere por lo menos 32 KB de memoria libre. (cualquiera)
9B La operación solicitada no está soportada por el sistema operativo. Por ejemplo, ejecutar READ PREVIOUS en un sistema de archivos que no tiene la habilidad de recorrer archivos en reversa. (cualquiera)
9C No quedan entradas en una de las tablas de bloqueo. El código de excepción secundario indica qué tabla está llena:
01 - El sistema operativo bloqueó la tabla.
02 - La tabla interna de bloqueo global (ver la configuración de la variable MAX-LOCKS).
03 - La tabla interna de bloqueos por archivos (ver la configuración de la variable LOCKS-PER-FILE) .
9D,xx Indica un error interno en el sistema de archivos. Las "xx" indica el código de error del sistema de archivos. Es similar al error "30", excepto que "xx" es específico del sistema de archivos en vez del sistema operativo.
9E,xx Indica un error ocurrido en el sistema de transacciones.
9Z Indica que se está ejecutando un programa con un "runtime" que tiene una restricción en la cantidad de registros que puede procesar. Ese límite está excedido.

Tomado y adaptado del RM/COBOL 85 User Guide de Liant Software.

Por Diego Romero,