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


例 1 - 互換性に影響を与えない場合

 IDENTIFICATION DIVISION.
 PROGRAM-ID. PGM1
 ENVIRONMENT DIVISION.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 PROCEDURE DIVISION.
     EXEC CICS HANDLE ABEND LABEL(LBL1) END-EXEC.
     CALL "PGM2" USING DFHEIBLK DFHCOMMAREA
     EXEC CICS RETURN END-EXEC.
 LBL1.
     EXEC CICS RETURN END-EXEC.


 IDENTIFICATION DIVISION.
 PROGRAM-ID. PGM2
 ENVIRONMENT DIVISION.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01  DATA1    PIC 9 VALUE 0.
 01  DATA2    PIC 9 VALUE 1.
 PROCEDURE DIVISION.
* Force a DIVIDE-BY-ZERO exception
     COMPUTE DATA1 = DATA2 / DATA1
     GOBACK.

この例では、CBLPSHPOP オプションの設定は VS COBOL II の互換性に影響を与えません。CBLPSHPOP(ON) を指定した場合、言語環境プログラムによって実行される CICS PUSH HANDLE が、PGM1 内で 発行される CICS HANDLE ABEND の影響を延期するため、PGM2 について HANDLE ABEND が有 効になりません。PGM2 内でゼロ除算が発生すると、アクティブの HANDLE ABEND がないため、ASRA 異常終了が 発生します。

CBLPSHPOP(OFF) を指定した場合、PGM2 内でゼロ除算が発生する と、CICS は言語環境プログラムに PGM1 内の LBL1 へ分岐するように要請しますが、言語環境プログラムは プログラム境界を超えるラベルへの分岐を許可しません。CBLPSHPOP(ON) の場合と同様に、プログラムは ASRA 異常終了で終了します。


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

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