Mit der THROW-Anweisung wird eine Benutzerausnahme generiert.
>>-THROW--+------+--EXCEPTION--+--------------------+-----------> '-USER-' '-SEVERITY--Ausdruck-' >--+----------------------+--+----------------------------+-----> '-CATALOG--Katalogname-' '-MESSAGE--Nachrichtennummer-' >--+----------------------------+------------------------------>< | .-,--------. | | V | | '-VALUES--(----Ausdruck-+--)-'
SEVERITY ist eine optionale Klausel, die den Schweregrad bestimmt, der der Ausnahme zugeordnet ist. Die Klausel kann jeden Ausdruck enthalten, der einen ganzzahligen Wert ungleich null zurückgibt. Falls Sie die Klausel übergehen, erhält sie standardmäßig den Wert 1 ausgefüllt.
Unter Windows müssen Sie den Schweregrad (SEVERITY) auf 3 setzen, damit der Fehler vom Windows-Ereignisprotokoll korrekt gemeldet wird.
CATALOG ist eine optionale Klausel; wird sie nicht angegeben, nimmt CATALOG standardmäßig den aktuellen WebSphere Message Broker-Versionskatalog als Wert an. Zur expliziten Verwendung des aktuellen Versionsnachrichtenkatalogs setzen Sie BIPmsgs auf allen Betriebssystemen ein.
MESSAGE ist eine optionale Klausel; falls Sie sie übergehen, wird ihr als Standardwert die erste Nachrichtennummer des Nachrichtenblocks zugewiesen, der für die Verwendung von THROW-Anweisungen im Standardkatalog (2951) bereitgestellt wird. Sie können die Nachrichtennummern 2951 bis 2999 aus dem Standardkatalog in die THROW-Anweisung eingeben. Alternativ können Sie entsprechend den Anweisungen unter Nachrichtenkataloge erstellen Ihren eigenen Katalog generieren.
Verwenden Sie das optionale VALUES-Feld, um Daten in Ihre Nachricht einzusetzen. Sie können eine beliebige Stückzahl von Informationen einfügen. Die Nachricht (2951 - 2999) kann jedoch nur acht Einfügungen aufnehmen.
THROW USER EXCEPTION;
THROW USER EXCEPTION CATALOG 'BIPmsgs' MESSAGE
2951 VALUES(1,2,3,4,5,6,7,8) ;
THROW USER EXCEPTION CATALOG 'BIPmsgs' MESSAGE
2951 VALUES('The SQL State: ',
SQLSTATE, 'The SQL Code: ', SQLCODE, 'The SQLNATIVEERROR: ', SQLNATIVEERROR,
'The SQL Error Text: ', SQLERRORTEXT ) ;
THROW USER EXCEPTION CATALOG 'BIPmsgs' MESSAGE
2951 ;
THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE
2951 VALUES('Hello World') ;
THROW USER EXCEPTION MESSAGE
2951 VALUES('Insert text 1', 'Insert text 2') ;
Weitere Informationen darüber, wie eine Ausnahme ausgelöst wird, sowie zu SQLSTATE, SQLCODE, SQLNATIVEERROR und SQLERRORTEXT finden Sie unter ESQL-Datenbankstatusfunktionen.