Maison >développement back-end >Tutoriel Python >Comment puis-je capturer et afficher une trace Full Stack en Python sans mettre fin au programme ?

Comment puis-je capturer et afficher une trace Full Stack en Python sans mettre fin au programme ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-20 12:11:11604parcourir

How Can I Capture and Display a Full Stack Trace in Python Without Terminating the Program?

Détecter les exceptions au traçage

Lorsque vous rencontrez des exceptions lors de l'exécution de Python, il peut être nécessaire de les capturer et de les enregistrer sans mettre fin brusquement au programme . Pour y parvenir, un bloc try/sauf peut être utilisé, dans lequel des exceptions spécifiques peuvent être gérées avec élégance.

Cependant, dans certains scénarios, il est souhaitable d'afficher l'intégralité de la trace de pile associée à l'exception, comme si l'exception avait été déclenchée sans le bloc try/sauf d'interception. Cela fournit des informations précieuses sur la cause spécifique et l'emplacement de l'erreur.

Pour obtenir un traçage complet, la méthode traceback.format_exc() peut être exploitée. Voici un exemple :

import traceback

def do_stuff():
    raise Exception("test exception")

try:
    do_stuff()
except Exception:
    print(traceback.format_exc())

Cet extrait de code produira le résultat suivant, imitant la trace de la pile d'exceptions par défaut :

Traceback (most recent call last):
  File "main.py", line 9, in <module>
    do_stuff()
  File "main.py", line 5, in do_stuff
    raise Exception("test exception")
Exception: test exception

En utilisant la méthode traceback.format_exc(), l'intégralité le traçage est capturé et imprimé, fournissant un enregistrement détaillé de l'occurrence de l'exception. Ces informations peuvent être inestimables pour déboguer et comprendre la cause première des erreurs sans perturber l'exécution du programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn