使用 HANDLE CONDITION ERROR 命令

此示例显示如何使用 HANDLE CONDITION ERROR 命令捕获意外错误。

图 1 显示了程序 ACCT01: 中仅使用的两个 HANDLE CONDITION 命令中的第一个命令
图 1。 使用 HANDLE CONDITION ERROR 命令捕获意外
 PROCEDURE DIVISION.
*
* INITIALIZE.
* TRAP ANY UNEXPECTED ERRORS.
EXEC CICS HANDLE CONDITION
ERROR(OTHER-ERRORS)
END-EXEC.
*

当命令未指定NOHANDLE或RESP时,若出现任何异常情况,该 HANDLE CONDITION ERROR 命令将控制权移交至标记为OTHER-ERRORS的段落。

此命令是 COBOL 程序中过程部分执行的第一个命令。 这是因为在处理任何可能引发当前处理中的条件的 CICS® 命令之前,必须先处理该 HANDLE CONDITION 命令。 然而,当程序处理该 HANDLE CONDITION 命令时并不会立即看到这些效果;只有在后续执行 CICS 命令并触发其中某个命名条件时,才能观察到这些效果。

在此和其他 ACCT 程序中,通常使用 RESP 选项。 所有指定 RESP 选项的命令都是使用 catch-all 测试 ( IF RESPONSE NOT = DFHRESP(NORMAL) GO TO OTHER-ERRORS ) 编写的 之后 针对特定条件的任何显式测试。 因此,除您特别预期的异常外,任何异常都将控制在每个程序中的 OTHER-ERRORS 处的段落。 如果由于此 HANDLE CONDITION ERROR 命令而导致除 NORMAL 以外的任何情况,那么没有 RESP 的那些相对较少的命令将控制在同一位置。