Python try/except: Montrant la cause de l'erreur après l'affichage de mes variables
Je ne suis même pas sûr de ce que les mots sont à la recherche pour. Je veux afficher des parties de l'objet d'erreur dans un bloc except (similaire à l'objet err dans VBScript, qui a Err.Nombre et Err.La Description). Par exemple, je veux montrer les valeurs de mes variables, puis afficher l'erreur exacte. Clairement, je suis en provoquant un divisé par zéro de l'erreur ci-dessous, mais comment puis-je imprimer ce fait?
try:
x = 0
y = 1
z = y / x
z = z + 1
print "z=%d" % (z)
except:
print "Values at Exception: x=%d y=%d " % (x,y)
print "The error was on line ..."
print "The reason for the error was ..."
Vous devez vous connecter pour publier un commentaire.
print e
parprint (e)
Si vous vous attendez à un DivideByZero d'erreur, vous pouvez intercepter cette erreur
Vous pouvez récupérer manuellement le numéro de la ligne et d'autres informations en appelant
traceback.print_exc()
La chaîne de valeur de l'objet de l'exception va vous donner la raison. Le
traceback
module va vous permettre d'accéder à la pleine de sperme.Une meilleure approche est de faire usage de la norme Python module de Journalisation.
Ce produit la sortie suivante:
L'avantage d'utiliser le module de journalisation est que vous avez accès à toutes les fantaisie journal des gestionnaires (syslog, e-mail, la rotation des fichiers de log), ce qui est pratique si vous voulez que vos exception à être connecté à plusieurs destinations.
En d'autres termes,
Vous pouvez obtenir les détails dans les pages de manuel lié par Ignacio, dans sa réponse.