|
Interception de toutes les erreurs en clp MONMSG MSGID(CPF0000) |
|
Ce code que vous pouvez rajouter à un de vos programmes permet de sortir proprement en arrêtant le programme en cours d'exécution Attention ! Ce n'est pas parce qu'un programme ne plante pas qu'il est juste ! 1) Partie à rajouter à la fin des déclaratives DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSG) TYPE(*CHAR) LEN(200) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(200) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGL) TYPE(*CHAR) LEN(10) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) 2) Partie à rajouter à la fin du programme GOTO END ERROR: MSGD: RCVMSG MSGTYPE(*DIAG) MSG(&MSG) MSGDTA(&MSGDTA) + MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGL) IF COND(&MSGID *NE ' ') THEN(DO) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGL/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*DIAG) MONMSG MSGID(CPF0000) GOTO CMDLBL(MSGD) ENDDO RCVMSG MSGTYPE(*EXCP) MSG(&MSG) MSGDTA(&MSGDTA) + MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGL) IF COND(&MSGID *NE ' ') THEN(DO) SNDPGMMSG MSGID(&MSGID) MSGF(&MSGL/&MSGF) + MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)) MONMSG MSGID(CPF0000) ENDDO END: ENDPGM
PLB |
|
| ... |
|