有没有人知道如果你试图打开一个IO文件(如果它不存在),然后创建一个新文件,你怎么能捕获cobol抛出的异常?
答案 0 :(得分:3)
SELECT原因上的可选短语将执行此操作:
SELECT OPTIONAL FILE-A
ASSIGN TO "INFILE"
ORGANIZATION INDEXED.
如果OPEN IO,将在必要时创建文件。对于OPEN INPUT,文件未被创建但被视为处于EOF,所有随机读取将为“INVALID KEY”。
我很确定这是一个ANSI标准条款,但不记得它何时出现。
答案 1 :(得分:1)
我不知道你使用的是什么版本的Cobol或者你使用它的平台。我的程序首先检查文件是否存在,然后再尝试打开它。我在MCP主机平台上使用Unisys Cobol 85。消息是蹩脚的,但谁在乎?
以下是每天运行的作业的摘录:
968545 IF ATTRIBUTE RESIDENT OF OU3-WORK-LIST-FILE = VALUE TRUE
968550 DISPLAY "PROGRAM SHOWS ATTRIBUTE TRUE"
968555 OPEN EXTEND OU3-WORK-LIST-FILE
968560 ELSE
968565 DISPLAY "PROGRAM SHOWS FALSE"
968570 OPEN OUTPUT OU3-WORK-LIST-FILE
968575 END-IF.
968580
凯西