RPG

27. RPG 中で例外エラーをモニターするには?

RPGプログラムがエラーでアベンドしたとき、決まったように「このエラーは監視されていない」

というメッセージが出る。

それでは RPG内部では どのように監視できるのだろう。

ファイル仕様書の継続行で *PSSR という名前のサブルーチンを定義しておけば

例外エラーはすべてここへ制御が移される。

その後、再開場所を ENDSR に定義する。

0001.00      H            Y/                                                   
0002.00      F********** RPG  エラーモニター **********************************
0003.00      FFILE    IF  F    9999            DISK
0004.00      F                                              KINFDS INFDS
0005.00      F                                              KINFSR *PSSR
0006.00      F*****************************************************************
0007.00      I*( プログラム状況データ構造 )
0008.00      IINFDSP     SDS
0009.00      I                                        1  10 PGID
0010.00      I                                       81  90 PGLB
0011.00      I                                       43  46 CPFID
0012.00      I                                       91 170 CPFMSG
0013.00      C*( *PSSR からの戻り )
0014.00      C           *IN93     IFEQ *ON                        *PSSR
0015.00      C                     SETOF                     93
0016.00      C                     GOTO CPFERR
0017.00      C                     END                             *PSSR
0018.00      C******************************************************
0019.00      C           *PSSR     BEGSR
0020.00      C******************************************************
0021.00      CSR         CPFID     IFNE *BLANKS
0022.00      CSR                   Z-ADD30        MSGSEV
0023.00      CSR                   SETON                     93
0024.00      CSR                   END
0025.00      CSR                   ENDSR'*DETC '