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 :

gestion erreur correcte ou pas [Python 2.X]


Sujet :

Python

  1. #1
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut gestion erreur correcte ou pas
    Bonjour,

    je voudrais savoir si mon teste d'erreur est correcte, tout fonctionne mais ai-je tout prévu

    merci

    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
     
    try:
           explorer = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-21-1306631746-1384123408-4180989965-1000\\Components")
    except WindowsError:
            pass
     
            try:
                i = 0
                while 1:
                    name = _winreg.EnumKey(regHandle,i)
                    for xname in range(len(Tab_list)):
                        if name == Tab_list[xname]:
                            Cpt += 1
                            TxtSecurite2.insert(END,"MACHINE UserData\S-1-5-21-1306631746-1384123408-4180989965-1000\Components : "+Tab_list[xname]+'\n\r')
                    i += 1
            except WindowsError:
     
                pass
     
            _winreg.CloseKey(explorer)

  2. #2
    Expert éminent

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

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

    ton bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            try:
                i = 0
                while 1:
                    name = _winreg.EnumKey(regHandle,i)
                    for xname in range(len(Tab_list)):
                        if name == Tab_list[xname]:
                            Cpt += 1
                            TxtSecurite2.insert(END,"MACHINE UserData\S-1-5-21-1306631746-1384123408-4180989965-1000\Components : "+Tab_list[xname]+'\n\r')
                    i += 1
            except WindowsError:
    ne s'exécutera qu'en cas d'erreur dans le bloc précédent, est-ce voulu ? Si oui alors le pass ne sert à rien.

  3. #3
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut
    bonsoir,

    ce que je veux c'est que si erreur (clé n'existe pas ), le code doit continuer et suivre les autres instructions

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 355
    Points : 36 883
    Points
    36 883
    Par défaut
    Salut,

    J'écrirai cela plutôt comme çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    def open_explorer():
         try:
             return _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Window...")
         except WindowsError:
             pass
     
    explorer =  open_explorer()
    if explorer is None:
       try:
          ...
         except WindowsError:
             pass
    else:
       _winreg.CloseKey(explorer)
    L'idée étant qu'il sera (peut être) plus lisible de traper l'exception pour retourner un objet ou None et faire en fonction de... plutôt que d'empiler les blocs try...catch...
    Mais "plus lisible" est une question de goût.

    - W

  5. #5
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut
    bonsoir

    alors à la limite comme il y a une cinquantaine de clés et plusieurs testes par clé, une fonction ou l'on passe en paramètre la clé qui retour True ou False pour connaître sa présence et statut et un corps distinct pour la particularité de chacune.

    merci, l'idée me plait.

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

Discussions similaires

  1. Gestion des droit, correcte ou pas correct ?
    Par Invité2 dans le forum Langage
    Réponses: 3
    Dernier message: 26/07/2011, 10h52
  2. Gestion erreur si n'existe pas
    Par Temjeh2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/07/2010, 13h26
  3. Gestion mémoire correcte ou pas ?
    Par vandamme dans le forum C++
    Réponses: 11
    Dernier message: 04/07/2007, 01h45
  4. radiobutton erreur n'est pas une valeur entière correcte
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 12/03/2006, 21h27
  5. erreur '' n'est pas une valeur entière correcte
    Par ffxlenoir dans le forum Langage
    Réponses: 5
    Dernier message: 02/12/2005, 13h57

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