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 :

peut-on cascader les Try..except ?


Sujet :

Python

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 427
    Points : 880
    Points
    880
    Par défaut peut-on cascader les Try..except ?
    bonjour,

    question simple, mais jamais vu faire, donc....

    peut-on mettre en cascade des try..except ?

    par exemple ce traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try:
        taches normales
    except :
        #enregistrement de l'erreur en log
        try:
            taches de logging
        except :
            #alertes consoles
            taches de sorties de l'erreur vers la console
            return true
    return true
    En gros si une erreur arrive, je veux l'enregistrer en base de données.
    si l'enregistrement en BDD échoue aussi, je veux la sortir en gros dans les log console du serveur

    donc, peut-on cascader un try..except comme j'ai fait ?

  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,

    Pourquoi n'avoir pas essayé ?

    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
     
    Python 3.2.3 (default, Feb 27 2014, 21:33:50) 
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> def test():
    ...     try:
    ...             x = 5 / 0
    ...     except:
    ...             try:
    ...                     x = 6 / 0
    ...             except:
    ...                     print('Caramba encore rate !')
    ... 
    >>> test()
    Caramba encore rate !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Points : 105
    Points
    105
    Par défaut
    Sinon, pour éviter d'avoir un truc qui occupe 100 lignes en escalier (c'est une expérience vécue):
    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
    21
    def my_func1():
        return 4/0
    def my_func2():
        return None
     
    list_functions = [
        lambda: 1/0,
        lambda: 2/0,
        lambda: 3/0,
        my_func1,
        my_func2,
    ]
     
    for func in list_functions:
        try:
            result = func()
        except Exception as err:
            print(err)
            continue
        else:
            break
    Je précise (je ne connais pas le degré d'apprentissage de Michael REMY) qu'en Python, les fonctions peuvent être manipulés comme n'importe quel autre "variable" (l'important étant de ne pas les appeler mais de n'utiliser que leur nom).

Discussions similaires

  1. [Try][Exception] dans toutes les fonctions
    Par Teo dans le forum Langage
    Réponses: 15
    Dernier message: 10/01/2011, 16h47
  2. Réponses: 2
    Dernier message: 07/12/2010, 15h39
  3. [try/except] Ignorer les exceptions
    Par anthyme dans le forum Général Python
    Réponses: 3
    Dernier message: 19/01/2007, 19h56
  4. Peut-on utiliser les SGBDs libres pour construire un DWH ?
    Par daabos dans le forum Alimentation
    Réponses: 6
    Dernier message: 01/10/2004, 10h35
  5. peut on filtrer les adresses IP ?
    Par travail dans le forum 4D
    Réponses: 2
    Dernier message: 04/06/2003, 14h16

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