# Stored Procedure Exception Handling



## Generic1 (20. Sep 2010)

Hallo

ich habe für meine DB einen SP programmiert welche auch schon funktioniert wenn alles vorhanden ist (Tabellen, usw.).
Was mir jetzt noch fehlt ist die Excetpion- Behandlung, sollte mal etwas fehl schlagen.
Meine Frage wäre jetzt, wie ich dieses Exception- Handling in einer SP für eine Oracle DB mache - Ich möchte den ganzen Code innerhalb von BEGIN ... END; mit dem Exception- Handling abfangen.
Weiß jemand wie das am Besten machen kann?
Vielen Dank und lg,




```
CREATE OR REPLACE PROCEDURE NamederSP
  AS
    declarationen
  BEGIN
      /* hier beginn des Exception- Handlings */
       programmcode
      /* hier ende des Exception- Handlings */
  END;
```


----------



## Michael... (20. Sep 2010)

Das erste Sucherebnis:
oracle pl exception handling - Google-Suche


----------



## Generic1 (20. Sep 2010)

Gibt es da keine allgemeine Exception, 
in meinem Fall mache ich folgendes: 


```
BEGIN
  f := utl_file.fopen('PATH','MyFile.txt','W');  
  utl_file.put_line(f, 'myText', false);
```

und wenn das Öffnen oder das schreiben in das File schief geht, dann sollte die Exception greifen nur weiß ich jetzt nicht, auf welche Exception ich reagieren soll - ich muss ja eine Eception definieren mit: 


```
EXCEPTION
   WHEN out_of_balance THEN
```

Weiß jemand ob es eine allgemeine Exception gibt bzw. wie man das löst?
lg


----------



## Michael... (20. Sep 2010)

Das Exception Handling von PL ähnelt dem von Java.

Um Exceptions allgemein abzufangen gibt's folgende Syntax

```
EXCEPTON
    WHEN INVALID_NUMBER THEN
    ...
    WHEN OTHERS THEN
    -- Hier können alle sonstigen, zuvor nicht abgefangenen Exceptions behandelt werden.
```


----------

