Est-il possible d'attraper une erreur any en Python? Peu m'importe ce que seront les exceptions spécifiques, car elles auront toutes le même repli.
L'utilisation de except
par elle-même interceptera toute exception à court d'un défaut de segmentation.
try:
something()
except:
fallback()
Vous voudrez peut-être gérer KeyboardInterrupt séparément au cas où vous auriez besoin de l'utiliser pour quitter votre script:
try:
something()
except KeyboardInterrupt:
return
except:
fallback()
Il y a une belle liste d'exceptions de base que vous pouvez attraper ici . J'aime aussi assez le module traceback pour récupérer une pile d'appels de l'exception. Essayez traceback.format_exc()
ou traceback.print_exc()
dans un gestionnaire d'exceptions.
try:
# do something
except Exception, e:
# handle it
Pour Python 3.x:
try:
# do something
except Exception as e:
# handle it
Vous voudrez peut-être aussi regarder sys.excepthook :
Lorsqu'une exception est levée et non interceptée, l'interpréteur appelle sys.excepthook avec trois arguments, la classe d'exception, l'instance d'exception et un objet traceback. Dans une session interactive, cela se produit juste avant le retour du contrôle à l'invite; dans un programme Python cela se produit juste avant la fin du programme. La gestion de ces exceptions de niveau supérieur peut être personnalisée en affectant une autre fonction à trois arguments à sys.excepthook.
Exemple:
def except_hook(type, value, tback):
# manage unhandled exception here
sys.__excepthook__(type, value, tback) # then call the default handler
sys.excepthook = except_hook