Vous n'êtes pas identifié(e).
Pages : 1
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');
R
Hors ligne
Pages : 1