1.25.2008

Benutzerdefinierter Fehler beendet Ausführung und gibt dennoch Meldung aus

Die Anweisung

raise_application_error (-20002, 'do_mcontract2baan - Kein Kundencursor geöffnet!');

erzeugt eine Fehlermeldung. Der Code wird dann nach dieser Meldung fortgesetzt.

Verwendet man

EXCEPTION WHEN others
THEN

so wird zwar die Bearbeitung beendet, aber leider auch die Meldung geschluckt.

Die Lösung:

Es wird ein eigener Fehler im PACKAGE definiert:

Fehler_Als_Meldung EXCEPTION;

und diesem dann die gewünschte Fehlernummer zugewiesen:

PRAGMA EXCEPTION_INIT (Fehler_Als_Meldung, -20002);

und eine Behandlungroutine wie folgt implementiert:

EXCEPTIONWHEN fehler_als_meldung
THEN
raise_application_error (-20003, SQLERRM);

Und schon wird die Ausführung des Code unterbrochen und die Meldung ausgegeben!

Keine Kommentare: