FirebirdSQL logo

In diesem Abschnitt wird beschrieben, wie Sie benutzerdefinierte Ausnahmen zur Verwendung in Fehlerhandlern in PSQL-Modulen erstellen, ändern und löschen.

CREATE EXCEPTION

Verwendet für

Erstellen einer neuen Ausnahme zur Verwendung in PSQL-Modulen

Verfügbar in

DSQL, ESQL

Syntax
CREATE EXCEPTION exception_name '<message>'

<message> ::= <message-part> [<message-part> ...]

<message-part> ::=
    <text>
  | @<slot>

<slot> ::= one of 1..9
Table 1. CREATE EXCEPTION-Anweisungsparameter
Parameter Beschreibung

exception_name

Ausnahmename.Die maximale Länge beträgt 63 Zeichen

message

Standardfehlermeldung.Die maximale Länge beträgt 1.021 Zeichen

text

Text beliebiger Zeichen

slot

Slotnummer eines Parameters.Die Nummerierung beginnt bei 1.Die maximale Steckplatznummer ist 9.

Die Anweisung CREATE EXCEPTION erzeugt eine neue Ausnahme zur Verwendung in PSQL-Modulen.Existiert eine gleichnamige Ausnahme, schlägt die Anweisung mit einer entsprechenden Fehlermeldung fehl.

Der Ausnahmename ist ein Standardbezeichner.In einer Dialect 3-Datenbank kann es in doppelte Anführungszeichen eingeschlossen werden, um die Groß-/Kleinschreibung zu berücksichtigen und bei Bedarf Zeichen zu verwenden, die in regulären Bezeichnern nicht gültig sind.Weitere Informationen finden Sie unter Bezeichner.

Die Standardnachricht wird im Zeichensatz NONE gespeichert, d.h. in Zeichen eines beliebigen Einzelbyte-Zeichensatzes.Der Text kann im PSQL-Code überschrieben werden, wenn die Ausnahme ausgelöst wird.

Die Fehlermeldung kann “Parameter-Slots” enthalten, die beim Auslösen der Ausnahme gefüllt werden können.

Warning

Wenn die message eine Parameter-Slot-Nummer enthält, die größer als 9 ist, werden die zweite und die nachfolgenden Ziffern als Literaltext behandelt.Zum Beispiel wird @10 als Slot 1 interpretiert, gefolgt von einem Literal ‘0’.

Note

Benutzerdefinierte Ausnahmen werden in der Systemtabelle RDB$EXCEPTIONS gespeichert.

docnext count = 12

Wer kann eine Ausnahme erstellen

Die CREATE EXCEPTION-Anweisung kann ausgeführt werden durch:

Der Benutzer, der die Anweisung CREATE EXCEPTION ausführt, wird Eigentümer der Ausnahme.

CREATE EXCEPTION-Beispiele

Erstellen einer Ausnahme namens E_LARGE_VALUE
CREATE EXCEPTION E_LARGE_VALUE
  'The value is out of range';
Erstellen einer parametrisierten Ausnahme E_INVALID_VALUE
CREATE EXCEPTION E_INVALID_VALUE
  'Invalid value @1 for field @2';
Tip
Tips

Die Gruppierung von CREATE EXCEPTION-Anweisungen in Systemaktualisierungsskripten vereinfacht die Arbeit mit ihnen und deren Dokumentation.Ein System von Präfixen zur Benennung und Kategorisierung von Ausnahmegruppen wird empfohlen.

ALTER EXCEPTION

Verwendet für

Ändern der von einer benutzerdefinierten Ausnahme zurückgegebenen Nachricht

Verfügbar in

DSQL, ESQL

Syntax
ALTER EXCEPTION exception_name '<message>'

!! Vgl. auch CREATE EXCEPTION für weitere Regeln !!

Die Anweisung ALTER EXCEPTION kann jederzeit verwendet werden, um den Standardtext der Nachricht zu ändern.

Wer kann eine Ausnahme ändern?

Die Anweisung ALTER EXCEPTION kann ausgeführt werden durch:

  • Administratoren

  • Der Inhaber der Ausnahme

  • Benutzer mit der Berechtigung ALTER ANY EXCEPTION

ALTER EXCEPTION-Beispiele

Ändern der Standardnachricht für die Ausnahme E_LARGE_VALUE
ALTER EXCEPTION E_LARGE_VALUE
  'The value exceeds the prescribed limit of 32,765 bytes';

CREATE OR ALTER EXCEPTION

Verwendet für

Ändern der von einer benutzerdefinierten Ausnahme zurückgegebenen Nachricht, falls die Ausnahme vorhanden ist;andernfalls eine neue Ausnahme erstellen

Verfügbar in

DSQL

Syntax
CREATE OR ALTER EXCEPTION exception_name '<message>'

!! Vgl. Syntax von CREATE EXCEPTION für weitere Regeln !!

Die Anweisung CREATE OR ALTER EXCEPTION wird verwendet, um die angegebene Ausnahme zu erstellen, falls sie nicht existiert, oder um den Text der von ihr zurückgegebenen Fehlermeldung zu ändern, wenn sie bereits existiert.Wenn eine bestehende Ausnahme durch diese Anweisung geändert wird, bleiben alle bestehenden Abhängigkeiten erhalten.

CREATE OR ALTER EXCEPTION-Beispiel

Ändern der Nachricht für die Ausnahme E_LARGE_VALUE
CREATE OR ALTER EXCEPTION E_LARGE_VALUE
  'The value is higher than the permitted range 0 to 32,765';

DROP EXCEPTION

Verwendet für

Löschen einer benutzerdefinierten Ausnahme

Verfügbar in

DSQL, ESQL

Syntax
DROP EXCEPTION exception_name
Table 1. DROP EXCEPTION-Anweisungsparameter
Parameter Beschreibung

exception_name

Exception name

Die Anweisung DROP EXCEPTION dient zum Löschen einer Ausnahme.Alle Abhängigkeiten von der Ausnahme führen dazu, dass die Anweisung fehlschlägt und die Ausnahme nicht gelöscht wird.

Wer kann eine Ausnahme fallen lassen?

Die DROP EXCEPTION-Anweisung kann ausgeführt werden durch:

  • Administratoren

  • Der Inhaber der Ausnahme

  • Benutzer mit dem Privileg DROP ANY EXCEPTION

DROP EXCEPTION-Beispiele

Ausnahme E_LARGE_VALUE wird gelöscht
DROP EXCEPTION E_LARGE_VALUE;

RECREATE EXCEPTION

Verwendet für

Erstellen einer neuen benutzerdefinierten Ausnahme oder Neuerstellen einer vorhandenen Ausnahme

Verfügbar in

DSQL

Syntax
RECREATE EXCEPTION exception_name '<message>'

!! Vgl. Syntax CREATE EXCEPTION für weitere Regeln !!

Die Anweisung RECREATE EXCEPTION erzeugt eine neue Ausnahme zur Verwendung in PSQL-Modulen.Wenn bereits eine Ausnahme mit demselben Namen existiert, versucht die Anweisung RECREATE EXCEPTION, sie zu löschen und eine neue zu erstellen.Wenn Abhängigkeiten von der bestehenden Ausnahme bestehen, schlägt der Löschversuch fehl und RECREATE EXCEPTION wird nicht ausgeführt.

RECREATE EXCEPTION-Beispiel

Ausnahme E_LARGE_VALUE neu erstellen
RECREATE EXCEPTION E_LARGE_VALUE
  'The value exceeds its limit';