# 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()](https://isupport.katointegrations.com/rxs/3.2/rxs_catch.md). ## Subprocedure Prototype ### IBM i 6.1+ | Field | Description | |---|---| | ` 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 ### IBM i 6.1+ #### Example 1 ```rpgle *-------------------------------------------------------------- * 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 ### RXS_CatchThrowErrorDS_t | Field | Description | |---|---| | ` 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. |