THROW statement

Start of change

The THROW statement generates a user exception.

End of change

SYNTAX

Start of changeThe USER keyword indicates the type of exception being thrown. (Currently, only USER exceptions are supported, and if you omit the USER keyword the exception defaults to a USER exception anyway.) Although, at present, specifying the USER keyword has no effect, you are nevertheless recommended to include it, because:
  • If future broker releases support other types of exception, and the default type changes, your code will not need to be changed.
  • It makes it clear that this is a user exception.
End of change

SEVERITY is an optional clause that determines the severity associated with the exception. The clause can contain any expression that returns a non-NULL, integer value. If you omit the clause, it defaults to 1.

Start of changeCATALOG is an optional clause; if you omit it, it defaults to the WebSphere Business Integration Message Broker current version catalog. To use the current WebSphere Business Integration Message Broker version message catalog explicitly, use BIPV600 on all operating systems.End of change

Start of changeMESSAGE is an optional clause; if you omit it, it defaults to the first message number of the block of messages provided for using THROW statements in WebSphere Business Integration Message Broker catalog (2949). If you enter a message number in the THROW statement, you can use message numbers 2949 to 2999. Alternatively, you can generate your own catalog by following the instructions in Using event logging from a user-defined extension. End of change

Use the optional VALUES field to insert data into your message. You can insert any number of pieces of information, but the messages supplied (2949 - 2999) cater for eight inserts only.

Examples

Here are some examples of how you might use a THROW statement:
  • THROW USER EXCEPTION; 
  • THROW USER EXCEPTION CATALOG 'WMQIv210' MESSAGE 2949 VALUES(1,2,3,4,5,6,7,8) ;
  • THROW USER EXCEPTION CATALOG 'WMQIv210' MESSAGE 2949 VALUES('The SQL State: ', 
        SQLSTATE, 'The SQL Code: ', SQLCODE, 'The SQLNATIVEERROR: ', SQLNATIVEERROR, 
        'The SQL Error Text: ', SQLERRORTEXT ) ;
  • THROW USER EXCEPTION CATALOG 'WMQIv210' MESSAGE 2949 ;
  • THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 2949 VALUES('Hello World') ;
  • Start of change
    THROW USER EXCEPTION MESSAGE 2949 VALUES('Insert text 1', 'Insert text 2') ;
    End of change

For more information about how to throw an exception, and details of SQLSTATE, SQLCODE, SQLNATIVEERROR, and SQLERRORTEXT, see ESQL database state functions.

Related concepts
ESQL overview
Related tasks
Developing ESQL
Throwing an exception
Related reference
Syntax diagrams: available types
ESQL statements
ESQL database state functions