Check FILE STATUSand act accordingly.
Try the following:
Add FILE-STATUSbelow FILE-CONTROL, for example:
FILE-CONTROL.
SELECT MYFILE ASSIGN MYDD
ORGANIZATION SEQUENTIAL
ACCESS SEQUENTIAL
FILE STATUS MYFILE-STATUS.
Declare a variable FILE STATUSin WORKING-STORAGE
as a value PIC X(2), for example:
01 MYFILE-STATUS PIC X(2).
88 MYFILE-ALREADY-OPEN VALUE '41'.
Then in PROCEDURE DIVISIONenter OPENfor your file. Immediately after that, check the value FILE STATUS
as in:
OPEN MYFILE....
IF MYFILE-ALRADY-OPEN
CLOSE MYFILE...
END-IF
IF MYFILE-STATUS <> '00'
perform some sort of general error routine
END-IF
FILE STATUS, "9",
COBOL, "41"
COBOL. , - "9",
.
COBOL FILE STATUS: http://www.simotime.com/vsmfsk01.htm