IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Gérer une erreur


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut Gérer une erreur
    Bonjour à tous

    Comment connaître le code d'une erreur afin de la traiter par une exception ?

    Merci

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Points : 30
    Points
    30
    Par défaut
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    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.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    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:
    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;
    En l'occurrence dans l'erreur que tu décris je pense qu'un
    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

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2004
    Messages : 199
    Points : 103
    Points
    103
    Par défaut
    Merci beaucoup. Cet intitulé est effectivement le bon.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gérer une erreur
    Par francoisch dans le forum Langage
    Réponses: 9
    Dernier message: 03/01/2011, 17h06
  2. Gérer une erreur d'encodage
    Par arkham55 dans le forum Débuter
    Réponses: 7
    Dernier message: 12/04/2010, 16h56
  3. gérer une erreur TJvDatePickerEdit (TDateTimePicker)
    Par yaniss321 dans le forum Langage
    Réponses: 0
    Dernier message: 12/01/2010, 16h28
  4. Gérer une erreur d'intégrité mysql(1451)
    Par spitou_77 dans le forum VBA Access
    Réponses: 0
    Dernier message: 29/11/2007, 09h47
  5. Réponses: 1
    Dernier message: 17/09/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo