RXS_Catch()

This subprocedure can be used to catch an error thrown by RXS_Throw() or via other methods. The error information is retrieved into a RXS_CatchThrowErrorDS_t data structure.

Typical usage involves this subprocedure being called inside the ON-ERROR section of a MONITOR group.

Subprocedure Prototype

D RXS_Catch...
D                 PR                  Extproc('RXS_Catch')
D                                     LikeDS(RXS_CatchThrowErrorDS_t)
 

Example Code

*--------------------------------------------------------------
* This example demonstrates calling RXS_Catch() and assigning the return
*  value to a RXS_CatchThrowErrorDS_t datastructure.
*--------------------------------------------------------------
H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER)

 /copy QRPGLECPY,RXSCB

D gErrorDS        DS                  Likeds(RXS_CatchThrowErrorDS_t)
D                                     Inz(*Likeds)                   
 /free
  RXS_ResetDS( gErrorDS : RXS_DS_TYPE_CATCHTHROWERROR );
  gErrorDS = RXS_Catch();

  *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)

Not used. Used by RXS_Throw() only.

Valid Values:

  • RXS_YES
  • RXS_NO

Default Value: RXS_NO