句柄异常终止

处理异常终止出口。

句柄异常终止

读取语法图跳过可视语法图HANDLE ABENDCANCELPROGRAM( 名称)LABEL( 标签)RESET

条件: NOTAUTH 和 PGMIDERR (仅限 PROGRAM)

此命令是线程安全的。

描述

使用 HANDLE ABEND 命令来激活,取消或重新激活出口以进行异常终止处理。 您可以使用 PUSH HANDLEPOP HANDLE 命令暂挂该命令。 请参阅 使用 PUSH HANDLE 和 POP HANDLE 命令

当任务异常终止时, CICS® 将搜索活动异常终止出口,从发生异常终止的应用程序的逻辑级别开始,然后依次进入更高级别。 找到的第一个活动异常终止出口 (如果有) 将被授予控制权。

HANDLE ABEND 命令无法拦截使用 CANCEL 选项发出的异常终止。 CICS 生成的某些内部异常终止通过 CANCEL 选项发出,例如 ASPx 或 APSJ 异常终止代码。

当 HANDLE ABEND LABEL 命令中指定的标签接收控制时,寄存器设置如下:
COBOL
在恢复了寄存器的情况下,控制权将返回到 HANDLE ABEND 命令。 然后执行 COBOL GO TO 语句。
汇编语言
R15: 异常终止标签。 R0-14: 在发出 HANDLE ABEND 命令的同一程序级别上发出最后一个 EXEC CICS 命令时的内容。

如果指定了 LABEL ,那么使用的寻址方式和执行键是发出 HANDLE ABEND 命令的程序的寻址方式和执行键。

如果指定了 PROGRAM ,那么将通过链接编辑程序的方式定义寻址方式,并通过对程序的资源定义的 EXECKEY 选项指定执行键。

如果已建立 COMMAREA ,那么它将传递到指定的 PROGRAM。 如果任务中涉及多个应用程序,那么传递到异常终止出口的 COMMAREA 是发出 HANDLE ABEND 命令的程序的 COMMAREA。 这可能不是发生异常终止的程序的 COMMAREA。

如果存在当前通道,那么可从指定的 PROGRAM 访问该通道。

选项

CANCEL
指定取消先前在控制中的应用程序的逻辑级别建立的出口。 此选项是缺省选项。
LABEL (标签)
指定发生异常终止时控制分支的程序标签。

不能将此选项用于 AMODE (64) 汇编语言, C , C++ 或 PL/I 应用程序。

PROGRAM (名称)
指定在异常终止任务时将控制权传递给的程序的名称。 如果出现异常终止条件,并且尚未定义指定的程序,那么将自动安装此程序。

此选项中指定的程序应始终以异常终止终止,但处理由于应用程序逻辑而生成的异常终止时除外。

RESET
指定重新激活由 HANDLE ABEND CANCEL 命令或由 CICS取消的出口。

此选项通常由异常终止出口例程发出。

条件

70 NOTAUTH
当 PROGRAM (name) 上的资源安全性检查失败时发生。

缺省操作: 异常终止任务。

27 PGMIDERR
RESP2 值:
1
程序没有已安装的资源定义,并且程序的自动安装未处于活动状态。
2
已禁用该程序。
9
已安装的程序资源定义用于远程程序。

缺省操作: 异常终止任务。

示例

以下示例显示如何将程序建立为出口:
EXEC CICS HANDLE ABEND
     PROGRAM('EXITPGM')