2016-06-01 11 views
0

I erstellt Ausnahme:Wie behandelt man benutzerdefinierte Ausnahme in Firebird-Prozedur?

CREATE EXCEPTION E_NO_CLIENT 'Client was not found.' ;

es dann in Verfahren

if (inv_port is null) then EXCEPTION e_no_client;

nennen und vor dem letzten end Ordnung i Ausnahme zu behandeln versuche:

 when SQLCODE 219 /*e_no_client*/ do 
      begin 
      error_code = 1; 
      execute procedure p_LOG('p_DEAL: Client was not find.'); 
      -- select * from RDB$EXCEPTIONS; 
      EXCEPTION; 
      end 

Die Frage ist, was ich schreiben muss ite nach when Anweisung nach do ausführen?

Ich habe versucht, when E_NO_CLIENT und RDB$EXCEPTION_NUMBER von RDB$EXCEPTIONS Tabelle (wie im Beispielcode) zu schreiben.

+0

Wenn Sie mit _firebird2.5_ markieren, dann auch mit _firebird_ –

Antwort

2

'Ausnahme' nach dem Wort 'wenn' hilft mir:

when exception e_no_client do 
     begin 
     error_code = 1; 
     execute procedure p_LOG('p_DEAL: Client was not find.'); 
     suspend; 
     end 
+0

Siehe auch Tag [Trapping und Fehlerbehandlung] (http: //www.firebirdsql .org/file/documentation/reference_manuals/fblangref25-de/html/fblangref25-psql-handleexceptions.html) in der Firebird 2.5-Sprachreferenz –