CLP で発生するエラーに対しては MONMSG でエラーをモニターしてその後の処置も指定できる。
また、MONMSG MSGID(CPF1201 CPF1202 CPF1203 CPF1204)の代わりにメッセージIDの頭2桁で代表して、MONMSG MSGID(CPF1200) と記述できる。
また CLP の最初に MONMSG CPF0000 を記述することによって指定した MONMSG 以外の予測外のメッセージの処理を指定することができる。
更に、実行コマンドを記述しない MONMSG 例えば CRTPRTF MYLIB/MYPRTF
MONMSG CPF3500 のような記述はエラーを無視することを意味する。存在を確認せずに実行することも可能になるのだ。
すべてのエラーをモニターできるわけではない。
「プログラミング便覧」 にはエラーをモニターできるコマンドと対応するエラーメッセージの一覧表が記載されている。
0001.00 PGM 0002.00 /*---------------------------------------------------------*/ 0003.00 /* MONMSG : メッセージ・モニター */ 0004.00 /*---------------------------------------------------------*/ 0005.00 DCL VAR(&MSG) TYPE(*CHAR) LEN(80) 0006.00 MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) 0007.00 0008.00 CHKOBJ OBJ(MYLIB/MYFIL) OBJTYPE(*FILE) 0009.00 MONMSG MSGID(CPF9800) EXEC(RETURN) 0010.00 0011.00 ERROR: RCVMSG RMV(*NO) MSG(&MSG) 0012.00 IF COND(&MSG *NE ' ') THEN(DO) 0013.00 SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) 0014.00 ENDDO 0015.00 ENDPGM