Comment empêcher "une exception trop large" dans ce cas?

J'ai une liste de fonctions qui peuvent échouer, et si l'on échoue, je ne veux pas que le script s'arrête, mais pour continuer avec la fonction suivante.

Je suis exécutant avec quelque chose comme ceci :

list_of_functions = [f_a,f_b,f_c]
for current_function in list_of_functions:
    try:
        current_function()
    except Exception:
        print(traceback.format_exc())

Ça fonctionne, mais il n'est pas PEP8 conforme:

Lors de la capture des exceptions, la mention des exceptions spécifiques à chaque
possible au lieu d'utiliser un nu à l'exception de: la clause.

Par exemple, utiliser:

try:
    import platform_specific_module
except ImportError:
    platform_specific_module = None

Un nu à l'exception de: clause catch SystemExit et KeyboardInterrupt
les exceptions, ce qui rend plus difficile d'interrompre un programme avec Control-C,
et peut dissimuler d'autres problèmes. Si vous voulez attraper toutes les exceptions
ce signal d'erreurs dans le programme, utiliser, sauf Exception: (nue à l'exception de est
équivalent à l'exception BaseException: ).

Une bonne règle de base est de limiter l'usage de la simple 'a l'exception des" clauses de deux
cas:

Si le gestionnaire d'exception sera l'impression ou l'enregistrement de la traçabilité en amont; à moins que l'utilisateur sera informé qu'une erreur s'est produite.

Si le code doit effectuer certains travaux de nettoyage, mais ensuite, permet à l'exception propagent soulever . essayez...enfin, peut-être une meilleure
façon de traiter ce cas.

Comment ce la bonne manière ?

source d'informationauteur Blusky