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 :

Gèrer les DeprecationWarning


Sujet :

Python

  1. #1
    Membre éclairé Avatar de Snooky68
    Homme Profil pro
    Développeur Web/Python/PHP
    Inscrit en
    Mai 2006
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web/Python/PHP
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 273
    Par défaut Gèrer les DeprecationWarning
    Bonjour,

    Dans un programme que je développe je lève des exeptions "raise". Le problème c'est qu'à chaque fois je me retrouve avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DeprecationWarning: raising a string exception is deprecated
      raise save, "%d" %i

    Voici un résumer de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    save = 'save'
     
    def essai():
        [...]
        raise save, "%d" % i
     
    try:
        essai
    except save, a:
        print a
    J'ai crus comprendre que c'est parsque je lève l'exception sur un string, le problème c'est que je ne comprend pas se que sa veut dire ni comment je doit faire correctement.

    Merci pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Par défaut
    bonjour,

    je ne savais pas que l'on pouvait lever une exception avec un str.

    en ce qui me concerne, j'aurais écrit quelque chose comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    class MonException(Exception):
     
        def __init__(self,i):
     
            msg = "save %d " % (i)
            Exception.__init__(self,msg)
     
    def mafonction():
     
        for i in xrange(100):
     
            if i>20:
                raise MonException(i)
     
    try:
        mafonction()
    except MonException:
        print "MonException capturee"
     
    mafonction()

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 99
    Par défaut
    En gros, il est maintenant fortement déconseillé d'utiliser des exceptions de type string. Il faut leur préférer des class, tant que cela est possible.

    Ton exemple pourrait tres simplement s'ecrire de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class SaveError(StandardError):
        pass
     
    def essai():
        [...]
        raise SaveError(i)
     
    try:
        essai
    except SaveError, a:
        print a
    Je ne m'en sers que très rarement mais il me semble que la valeur 'i' peut être récupérer dans la variable SaveError.arg.
    Il faut confirmer ca avec la doc.

  4. #4
    Membre éclairé Avatar de Snooky68
    Homme Profil pro
    Développeur Web/Python/PHP
    Inscrit en
    Mai 2006
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web/Python/PHP
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 273
    Par défaut
    OK! Merci beaucoup à tous,

    Je vais faire comme sa et utiliser des objets exception.

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

Discussions similaires

  1. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  2. [Frame] Gérer les composants
    Par chastel dans le forum Débuter
    Réponses: 4
    Dernier message: 07/05/2004, 17h57
  3. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34
  4. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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