PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 21/06/2010 16:48:33

beaud76
Membre

Gestion d'exception

Bonjour,
Je développe actuellement un logiciel à base de fonctions plpgsql qui sont appelées dans des scripts psql et par du code php.
Elles doivent pouvoir être exécutées avec des versions de postgresql 8.2 et suivantes.
Certaines fonctions en appellent d'autres. Actuellement, lorsqu'une fonction quelconque détecte une anomalie, elle fait un simple RAISE EXCEPTION avec un message explicatif de l'erreur.
Pour diverses raisons, j'aimerais centraliser la gestion des erreurs dans une fonction dédiée.

En fait je souhaiterais qu'en cas d'erreur :
- les éventuelles opérations déjà effectuées sur la base soient rollbackées,
- une ligne soit insérée dans une table de log des erreurs,
- un message d'erreur soit retourné à l'application.
Mais j'avoue avoir du mal à structurer du code pour mettre en oeuvre ces principes.

Dit autrement, j'ai actuellement du code du style :
Create function FctA
begin
...
if <condition> then
raise exception 'erreur dans FctA';

end;

Et j'aimerais un fonctionnement du genre :

Create function FctA
begin
...
if <condition> then
perform FctErr ('erreur dans FctA');
&#82

Hors ligne

Pied de page des forums