|
Comment intercepter toutes les erreurs dans un programme CLP ? |
|
Comment intercepter toutes les erreurs dans un programme CLP ?
En utilisant un monmsg derrière la dernière déclarative des variables
Remarque :
Ce monmsg n'est pas prioritaire par rapport à ceux qui suivent une instruction, il ne doit arrêter que les erreurs exceptionnelles.
Voici un exemple du code à ajouter à votre programme :
PGM /* Ici vos déclaratives */ Dcl &Msg *Char ( 256 ) /* doit suivre la dernière instruction Dcl */ MonMsg ( CPF0000 MCH0000 ) Exec( Goto erreur)
/* ici les instructions de votre programme */
/* fin normal du programme */ Return /* fin en erreur du programme */ Erreur:
/* Lecture des messages d'erreur exceptionelle */ RcvMsg MsgType( *Excp ) Msg( &Msg ) MonMsg ( CPF0000 MCH0000 )
/* Envoi d'un message de diagnostics */ SndPgmMsg MsgID( CPD0006 ) MsgF( QSYS/QCPFMSG ) MsgDta( '0000' *Cat &MSG ) MsgType( *Diag ) MonMsg ( CPF0000 MCH0000 )
/* Envoi d'un message de diagnostics */ SndPgmMsg MsgID( CPF0002 ) MsgF( QSYS/QCPFMSG ) MsgType( *Escape ) MonMsg ( CPF0000 MCH0000 )
/* fin du programme */ EndPgm
PLB
|