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

  RXS_ResetDS( gErrorDS : RXS_DS_TYPE_CATCHTHROWERROR );
  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   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_CATCHTHROWERROR)
 
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.

D   ThrowToCaller...
D                                 N   Inz(RXS_NO)

Set to RXS_YES when you want the error sent to the program that called the program which is throwing the error. By default, the program throwing the error will be the target of the error.