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

Python Discussion :

Afficher le message d'erreur en levant une exception


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arabie Saoudite

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2014
    Messages : 51
    Points : 35
    Points
    35
    Par défaut Afficher le message d'erreur en levant une exception
    Bonjour à tous,

    J'ai créé une classe ParametreTypeIncorrect qui hérite de la classa Exception pour pouvoir gérer les types des arguments passés à des instructions comme IADD, SCONST, SOUT, SIN, etc ... Dans le cadre du petit programme que j'essaie de coder (que dieu me vienne en aide!), je ne considère que les types int et str.
    Voici ma sous classe ParametreTypeIncorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class ParametreTypeIncorrect(Exception): 
    #Détecte une erreur lorsqu'un type autre que str et int existent
     def __init__(self,s):
      self.ArgumentPasse=s
     def get_ArgumentPasse(self):
      return self.ArgumentPasse
     def __repr__(self):
      return "'{}':Je ne connais que les 'int' et les 'str', désolé !".format(self.ArgumentPasse)
    et voici une partie de mon code où je la lève :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    def VerificationDesCommandes(LesCommandes):
     for s in LesCommandes:
      if len(s)==1:
        ..........
      else: 
       assert(len(s)==2), "Element vide ou surnuméraire dans la liste des commandes"
       if (type(s[1])!=int) | (type(s[1])!=str): raise ParametreTypeIncorrect(s[1])
    Je teste ma fonction VerificationDesCommandes avec l'exemple suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    LesCommandes=[['SCONST','hello'],['SOUT'],['STOP']]
    VerificationDesCommandes(LesCommandes)
    print("Il a verifie et n'a pas trouve d'erreurs")
    et j'obtiens le TraceBack suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Traceback (most recent call last):
      File "VerificationCommandes.py", line 105, in <module>
        testVerificationDesCommandes(LesCommandes)
      File "VerificationCommandes.py", line 102, in testVerificationDesCommandes
        VerificationDesCommandes(LesCommandes)
      File "VerificationCommandes.py", line 91, in VerificationDesCommandes
        if (type(s[1])!=int) | (type(s[1])!=str): raise ParametreTypeIncorrect(s[1])
    __main__.ParametreTypeIncorrect
    Est ce que __main__ est une méthode de la classe Exception ? Et comment je peux faire pour afficher le message d'erreur que j'ai mis dans la définition de la méthode __repr__ ?

    Bien cordialement.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    C'est __str__ à la place de __repr__

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    >>> class BadValue(Exception):
    ...     def __init__(self, v):
    ...             self.v = v
    ...     def __str__(self):
    ...             return repr("Bad argument %s" % self.v)
    ... 
    >>> a = "gfhy"
    >>> if not isinstance(a, int):
    ...     raise BadValue(a)
    ... 
    Traceback (most recent call last):
      File "<stdin>", line 2, in <module>
    __main__.BadValue: 'Bad argument gfhy'

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Octobre 2014
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arabie Saoudite

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2014
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    D'accord !
    Mais alors à quoi sert __repr__ ??

Discussions similaires

  1. [POO] afficher un message d'erreur après passage dans une BD
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/04/2008, 16h04
  2. Réponses: 1
    Dernier message: 23/04/2007, 10h23
  3. afficher un message d'erreur lors d'une saisie
    Par ludovicparis dans le forum IHM
    Réponses: 4
    Dernier message: 20/03/2007, 11h37
  4. Afficher un message d'erreur dans une fenêtre popup
    Par Quickeno dans le forum Langage
    Réponses: 7
    Dernier message: 08/10/2006, 01h56

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