Cobol открыть сообщение об ошибке входного файла

Что такое команда обработки ошибок для открытого файла последовательного ввода?

Я старался,

OPEN INPUT CUSTOMER-FILE
INVALID KEY/ON ERROR
DISPLAY "NO FILE FOUND".

но не мог заставить его работать.

Благодарю.

2 ответа

Решение

В FILE-CONTROL добавьте предложение FILE STATUS в SELECT для вашего файла, а в разделе PROCEDURE DIVISION проверьте значение переменной состояния файла, которую вы указали, относительно документированных значений после каждого взаимодействия с файлом.

Я согласен с использованием статуса файла, он гораздо более гибкий, и вы можете обрабатывать все ошибки в одном решении. Вот большая часть кода, который вам нужен для этого:

FILE-CONTROL.                                                
    SELECT  FILENAME  ASSIGN  TO  FILENAME                 
                        FILE STATUS IS WS-FS-FILENAME.       
*I  used WS-FS-FILENAME so I know it's declared in Working Storage and connected to File *Section.

DATA DIVISION.                                               
FILE SECTION.                                                

FD  FILENAME            RECORDING  ....                         
                        BLOCK      ...                        
                        RECORD     ....                       
                        LABEL      RECORD    ....        
                        DATA       RECORD    ...
                        .....  

01  FILENAME-REC         PIC X(N).




WORKING-STORAGE SECTION.                                       
01  WS-FS-FILENAME   PIC XX.   

==================================================


OPEN OUTPUT FILENAME.                        
IF WS-FS-FILENAME NOT = '00' THEN            
   DISPLAY 'ERROR OPENING FILENAME'          
   DISPLAY 'ERROR CODE IS : ', WS-FS-FILENAME
   PERFORM EXIT-WITH-ERROR                        
END-IF.                                     

WRITE FILENAME-REC.                                   
IF WS-FS-FILENAME NOT = '00'                          
   DISPLAY 'WRITE ERROR ON FILENAME. ' 
   DISPLAY 'STATUS :' WS-FS-FILENAME                  
   PERFORM EXIT-WITH-ERROR                                
END-IF. 

И так далее с чтением, закрытием.

Вы также можете найти конкретные коды ошибок в документации к Cobol.

Другие вопросы по тегам