web-dev-qa-db-fra.com

Python obtenir un code d'erreur d'exception

En python, j'ai du code qui gère les exceptions et imprime les codes d'erreur et les messages.

try:
    somecode() #raises NameError
except Exception as e:
    print('Error! Code: {c}, Message, {m}'.format(c = e.code, m = str(e))

Cependant, e.code n'est pas le bon moyen d'obtenir le nom de l'erreur (NameError), et je ne trouve pas la réponse à cela. Comment suis-je susceptible d'obtenir le code d'erreur?

5
Pythonic Guy 21421

Essaye ça:

try:
    somecode() #raises NameError
except Exception as e:
    print('Error! Code: {c}, Message, {m}'.format(c = type(e).__name__, m = str(e)))

Lisez ceci pour une explication plus détaillée.

2
63677

Les exceptions Python n'ont pas de "codes".

Vous pouvez créer une exception personnalisée qui possède une propriété appelée code, puis vous pouvez y accéder et l'imprimer comme vous le souhaitez.

This answer a un exemple d'ajout d'une propriété code à une exception personnalisée.

0
Dustin Wyatt