Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 コンパイラーおよびランタイム 移行ガイド


例 2 - 互換性に影響を与える場合

 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 異常終了で終了します。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)