2

如果您尝试打开一个不存在的 IO 文件,然后创建一个新文件,那么有谁知道如何捕获 cobol 抛出的异常?

4

2 回答 2

5

SELECT 原因上的 OPTIONAL 短语将执行此操作:

SELECT OPTIONAL FILE-A 
   ASSIGN TO "INFILE" 
   ORGANIZATION INDEXED. 

如果 OPEN IO,将在必要时创建文件。对于 OPEN INPUT,文件不会被创建,而是被视为处于 EOF 并且所有随机读取都将是“INVALID KEY”。

我很确定这是一个 ANSI 标准条款,但不记得它是什么时候出现的。

于 2009-12-16T23:46:07.003 回答
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                                    

凯茜

于 2009-12-16T22:38:17.663 回答