Bonjour à tous
Comment connaître le code d'une erreur afin de la traiter par une exception ?
Merci
Bonjour à tous
Comment connaître le code d'une erreur afin de la traiter par une exception ?
Merci
Bonjour,
Encore et toujours la doc : http://www.postgresql.org/docs/8.2/i...-appendix.html
Bien entendu adaptez l'url en fonction de votre version.
Merci de cette réponse.
Malheureusement ce n'est pas clair.
J'avais bien lu cette page, néanmoins cela ne donne pas un exemple concret de code à implémenter dans une fonction du type :
on error :...
On Num_error...
que l'on peut trouver dans d'autres language.
Ce type d'implémentation existe-t-il en plpgsql ?
On trouve bien que SQLSTATE donne des informations sur l'erreur mais je ne sais pas comment l'exploiter.
J'ai actuellement le message :
Erreur : Syntaxe en entrée invalide pour le type numeric
et dans cette page (qui est d'ailleurs en anglais), on ne trouve rien d'approchant.
Le code de l'erreur est effectivement dans SQLSTATE. Pour récupérer l'erreur dans la fonction même il faut faire un bloc EXCEPTION. Se référer à l'exemple de la doc:
En l'occurrence dans l'erreur que tu décris je pense qu'un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 INSERT INTO mon_tableau(prenom, nom) VALUES('Tom', 'Jones'); BEGIN UPDATE mon_tableau SET prenom = 'Joe' WHERE nom = 'Jones'; x := x + 1; y := x / 0; EXCEPTION WHEN division_by_zero THEN RAISE NOTICE 'récupération de l''erreur division_by_zero'; RETURN x; END;
WHEN invalid_text_representation
attraperait l'erreur
On peut aussi faire WHEN OTHERS pour attraper toutes les erreurs.
Si dans le bloc d'erreur on veut remonter l'exception à l'appelant au lieu de la "consommer", on peut utiliser RAISE EXCEPTION à la place du RAISE NOTICE de l'exemple
Merci beaucoup. Cet intitulé est effectivement le bon.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager