Um aus Stored Procedures oder Triggern heraus Fehlermeldungen an den
Benutzer zu übermitteln, gibt es das Konzept der Exceptiosn.

Der Einsatz von Exceptions ist sehr einfach, wie folgendes Beispiel zeigen
soll:

/* Exception anlegen*/
CREATE EXCEPTION EXCPT 'Text, den der Benutzer sehen soll';

/* Auslösen einer Exception */
CREATE PROCEDURE NEW_PROCEDURE
AS
begin
/* Aufruf einer Exception */
EXCEPTION EXCPT;
/* Hier kommt die Ausführung nicht mehr hin! */
suspend;
end

Normalerweise löst man eine Exception natürlich nur aus, wenn eine
Fehlersituation erkannt wurde

Ab Firebird 1.5 kann man der Exception auch dynamisch einen Fehlertext
zuweisen, entweder als Konstante oder als Variable.

/* Auslösen einer Exception */
CREATE PROCEDURE NEW_PROCEDURE2
AS
begin
/* Aufruf einer Exception */
EXCEPTION EXCPT 'Meldung ' || "DBValue" || ' mehr Text';
/* Hier kommt die Ausführung nicht mehr hin! */
suspend;
end

Zu beachten ist nur: Der Text darf nicht länger als 78 Zeichen sein. Mehr
Zeichen passen nicht in den Status Vektor, über den die Meldung an den
Klienten übertragen wird.
Leider überprüft der Server nicht, ob der Text länger ist, sondern gibt
eine Fehlermeldung aus: Arithmetic overflow or division by zero has
occurred. arithmetic exception, numeric overflow, or string truncation..
Der Fehler bezieht sich dabei meist auf die Fehlermeldung, was nicht sehr
geschickt ist.