Maison >développement back-end >Tutoriel Python >Comment puis-je capturer et imprimer un traçage d'exception Python sans arrêter l'exécution du programme ?

Comment puis-je capturer et imprimer un traçage d'exception Python sans arrêter l'exécution du programme ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-27 05:27:14347parcourir

How Can I Capture and Print a Python Exception Traceback Without Stopping Program Execution?

Préservation du traçage des exceptions sans interruption du programme

Lors de la gestion des exceptions en Python, vous pouvez rencontrer des situations dans lesquelles vous souhaitez capturer et imprimer le traçage complet sans interrompre le déroulement du programme. Le bloc except par défaut fournit uniquement l'objet d'exception, qui n'inclut pas le traçage détaillé qui est normalement affiché lorsqu'une exception est déclenchée.

Solution utilisant traceback.format_exc()

Pour obtenir le bloc complet traceback, vous pouvez utiliser la fonction traceback.format_exc(), qui génère une chaîne formatée représentant la trace de pile du fichier actuel. exception.

import traceback

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

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

Sortie

Ce code produira la sortie suivante, reflétant le traçage imprimé lorsque l'exception est levée sans le bloc try/sauf :

Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
  File "<stdin>", line 3, in do_stuff
Exception: test exception

L'utilisation de traceback.format_exc() vous permet de capturer et d'imprimer l'intégralité du traçage sans arrêter ni quitter le programme, garantissant ainsi que vous avez accès à des informations de diagnostic détaillées tout en conservant un accès ininterrompu. exécution. Cette technique est particulièrement utile à des fins de journalisation et de débogage.

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