IDENTIFICATION DIVISION.
PROGRAM-ID. PGM1
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATA1 PIC 9 VALUE 0.
01 DATA2 PIC 9 VALUE 1.
PROCEDURE DIVISION.
EXEC CICS HANDLE ABEND LABEL(LBL1) END-EXEC.
CALL "PGM2" USING DFHEIBLK DFHCOMMAREA
* Force a DIVIDE-BY-ZERO exception
COMPUTE DATA1 = DATA2 / DATA1
EXEC CICS RETURN END-EXEC.
LBL1.
EXEC CICS RETURN END-EXEC.
IDENTIFICATION DIVISION.
PROGRAM-ID. PGM2
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
EXEC CICS HANDLE ABEND LABEL(LBL1A) END-EXEC.
GOBACK.
LBL1A.
GOBACK.
この例では、CBLPSHPOP オプションは、VS COBOL II との互換性に影響を与えます。CBLPSHPOP(ON) を指定した場合、PGM1 の HANDLE ABEND ラベルが、PGM2 への呼び出しを超えて 保管および復元され、ゼロ除算例外は LBL1 への分岐によって処理されます。プログラムは正常に終了します。
CBLPSHPOP(OFF) を指定した場合、PGM2 の HANDLE ABEND コマンドは、PGM1 への戻り時 に有効です。PGM1 内でゼロ除算例外が発生すると、CICS は言語環境プログラムに PGM2 内の LBL1A へ分岐するよ うに要請します。言語環境プログラムはこの分岐を妨げ、プログラムは ASRA 異常終了で終了します。