RXS_Throw()

This subprocedure can be used to throw an error. The error information is populated into a data structure which is then passed to RXS_Throw. The error can be caught by RXS_Catch().

Subprocedure Prototype

     D RXS_Throw...
     D                 PR                  Extproc('RXS_Throw')

     D   DS                                Likeds(RXS_CatchThrowErrorDS_t)

The RXS_CatchThrowErrorDS_t data structure that contains the error information to be thrown.

Example Code

      *--------------------------------------------------------------
      * This example code demonstrates throwing a diagnostic error
      *  by assigning values to a RXS_CatchThrowErrorDS_t datastructure and
      *  throwing the error datastructure to the calling program.
      *--------------------------------------------------------------
     H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

      /copy QRPGLECPY,RXSCB

     D gErrorDS        DS                  Likeds(RXS_CatchThrowErrorDS_t)
     D                                     Inz(*LikeDS)
      /free
       // Send a diagnostic error message

       reset gErrorDS;
       gErrorDS.MessageId = 'CPF9898';                                       
       gErrorDS.MessageFile = 'QCPFMSG';                                     
       gErrorDS.MessageData = 'This is a *DIAG error being thrown'; 
       gErrorDS.MessageType = RXS_MESSAGE_TYPE_DIAG;                         
       RXS_Throw(gErrorDS);

       *INLR = *ON;
      /end-free

Data Structures

     D RXS_CatchThrowErrorDS_t...
     D                 DS                  Qualified Template Inz

     D   MessageId                    7A

The message ID that was received.

     D   MessageFile                 20A

The message file used to store the message ID.

     D   MessageData               1024A   Varying

The message data to be merged with the text of the message ID.

     D   MessageType                  5I 0

The type of message that was sent.

Valid Values:

  • RXS_MESSAGE_TYPE_DIAG
  • RXS_MESSAGE_TYPE_COMP
  • RXS_MESSAGE_TYPE_INFO
  • RXS_MESSAGE_TYPE_INQ
  • RXS_MESSAGE_TYPE_RQS
  • RXS_MESSAGE_TYPE_NOTIFY
  • RXS_MESSAGE_TYPE_ESCAPE
  • RXS_MESSAGE_TYPE_STATUS

     D   MessageText               4096A   Varying

The full message text that combines the value of the message ID's text and the merged message data.