Zum Hauptinhalt springen

Wie bekomme ich die neueste Fehlerverfolgung in Python?

Wenn Sie ein Programm in Python entwickeln, treten manchmal Fehler auf. Aber wie bekomme ich die vollständigen Informationen darüber, wo der Fehler aufgetreten ist? Es gibt ein spezielles Modul in Python, das Ihnen dabei hilft - traceback.

Das Traceback-Modul bietet die Funktionalität zum Abrufen der letzten Fehlerverfolgung. Es kann beim Debuggen eines Programms nützlich sein, um zu verstehen, wo das Problem aufgetreten ist. mit Traceback können Sie Debug-Informationen als eine Liste von Zeilen abrufen, die jeden Frame des Aufrufstapels beschreiben, beginnend an der Stelle, an der der Fehler aufgetreten ist.

Um die letzte Fehlerverfolgung zu erhalten, können Sie die Funktion traceback verwenden.format_exc() aus dem traceback-Modul. Es gibt eine Zeichenfolge mit dem vollständigen Fehlerbericht einschließlich der vollständigen Ablaufverfolgungsstruktur zurück. Wenn Sie einen Fehlerbericht an die Konsole senden möchten, können Sie die Funktion drucken verwenden oder die Daten in eine Datei schreiben.

Beispiel für die Verwendung der Fehlerablaufverfolgung:

import traceback

# ihr Code, in dem der Fehler auftreten kann

except Exception as e:

# Fehlerverfolgung als Zeichenfolge erhalten

# ausgabe der Fehlerverfolgung in der Konsole

# Fehlerverfolgung in eine Datei schreiben

with open('error.log', 'w') as f:

Standardausgabe der Fehlerverfolgung in Python

Die Standardausgabe der Fehlerverfolgung in Python erfolgt über die Funktion traceback.print_exc() des Traceback-Moduls . Diese Funktion gibt eine vollständige Fehlerverfolgung ab, beginnend mit der zuletzt aufgerufenen Codezeile und kehrt zu vorherigen Aufrufen zurück.

Die Standardausgabe der Fehlerverfolgung besteht normalerweise aus drei Teilen:

  1. Fehlertyp: dies ist der Klassenname des Fehlers, der aufgetreten ist. Zum Beispiel, TypeError oder IndexError.
  2. Fehlermeldung: dies ist ein Text, der detailliertere Informationen darüber gibt, was genau passiert ist. Beispiel: "unsupported operand type(s) for +: 'int' and 'str'" (nicht unterstützte Operanden zum Addieren sind 'int' und 'str').
  3. Fehlerverfolgung: dies ist eine Liste von Zeilen, die die Abfolge von Funktionsaufrufen und Codezeilen anzeigt, bei denen der Fehler aufgetreten ist.

Die Standardausgabe der Fehlerverfolgung ist ein sehr nützliches Werkzeug zum Debuggen von Code in Python. Es ermöglicht Ihnen, den Ort zu finden, an dem der Fehler auftritt, und ihn schnell zu beheben. Bei der Entwicklung von Programmen sollten Sie immer die Fehlerverfolgung berücksichtigen und diese verwenden, um Probleme zu lokalisieren und zu beheben.

Abrufen der letzten Fehlertrace-Zeile in Python

Sie können die Traceback-Funktion verwenden, um die letzte Zeile der Fehlerverfolgung in Python abzurufen.format_exc() des Traceback-Moduls .

Diese Funktion gibt die Fehlerverfolgung als Zeichenfolge zurück, die zur späteren Verwendung in einer Variablen gespeichert oder angezeigt werden kann.

import tracebacktry:# блок кода, в котором может возникнуть ошибкаpassexcept Exception as e:traceback_str = traceback.format_exc()last_line = traceback_str.strip().splitlines()[-1]print(last_line)

Im obigen Beispiel führen wir einen Codeblock aus, der eine Ausnahme auslösen kann. Wenn ein Fehler auftritt, verwenden wir die Traceback-Funktion.format_exc(), um eine Ablaufverfolgungszeichenfolge abzurufen.

Dann konvertieren wir die resultierende Zeichenfolge mithilfe der splitlines() -Methode in eine Liste von Zeichenfolgen. Die strip() -Methode wird verwendet, um überflüssige Leerzeichen zu entfernen und eine Zeile vom Anfang und Ende einer Zeile zu umbrechen.

Um die letzte Zeile der Fehlerablaufverfolgung abzurufen, müssen Sie das letzte Element der Ablaufverfolgungsliste auswählen, das durch einen Index erreicht wird [-1] .

Schließlich geben wir die letzte Zeile der Fehlerverfolgung mit der Funktion print() auf dem Bildschirm aus

Verwenden des Traceback-Moduls zum Abrufen einer Fehlerverfolgung

Um das Traceback-Modul zu verwenden, müssen Sie es zuerst importieren:

import traceback

Wenn dann ein Fehler auftritt, wird die Traceback-Funktion aufgerufen.format_exc(), das eine vollständige Ablaufverfolgung des letzten Fehlers zurückgibt:

try:# код, в котором может возникнуть ошибкаpassexcept:# обработка ошибкиtraceback_str = traceback.format_exc()print(traceback_str)

Traceback-Funktion.format_exc() gibt die Fehlerverfolgung als Zeichenfolge zurück. Diese Zeile kann in einer Protokolldatei gespeichert oder zum Erstellen eines Fehlerberichts verwendet werden.

Darüber hinaus bietet das Traceback-Modul weitere nützliche Funktionen wie Traceback.print_exc(), das die Fehlerablaufverfolgung an den Standardausgabestream ausgibt:

try:# код, в котором может возникнуть ошибкаpassexcept:# обработка ошибкиtraceback.print_exc()

Mit dem Traceback-Modul erhalten Sie vollständige Informationen über den aufgetretenen Fehler, einschließlich des Fehlernamens, der Datei und der Codezeile, auf der der Fehler aufgetreten ist. Dies vereinfacht den Debugging-Prozess und kann dem Entwickler Zeit sparen, wenn er Fehler im Programm findet und repariert.

Abrufen des Dateinamens, in dem der Fehler aufgetreten ist

Wenn ein Fehler in Python auftritt, können Sie Informationen über die Datei abrufen, in der der Fehler aufgetreten ist. Diese Informationen können hilfreich sein, um das Problem zu debuggen und zu beheben. Sie können das Traceback-Modul verwenden, um den Namen der Datei abzurufen, in der der Fehler aufgetreten ist.

Das Traceback-Modul bietet Funktionen zum Aufzeichnen und Anzeigen der Aufrufstapel-Ablaufverfolgung. Die Stapelverfolgung enthält Informationen über die aufgerufenen Funktionen und die Datei, in der sie aufgerufen wurden.

Sie können die Methode verwenden, um den Dateinamen abzurufen traceback.extract_tb(). Diese Methode gibt eine Liste von Traceback-Objekten zurück, die jeweils Informationen zu früheren Funktionsaufrufen enthalten.

Beispiel für die Verwendung der Methode traceback.extract_tb():

# Code, der den Fehler verursacht

print("In der Datei ist ein Fehler aufgetreten:", dateiname)

In diesem Beispiel verursachen wir einen Fehler mit der Raise-Anweisung und erhalten mithilfe der Traceback-Methode eine Liste der Traceback-Objekte.extract_tb(). Dann erhalten wir das letzte Element der Liste, das Informationen über den Funktionsaufruf enthält, bei dem der Fehler aufgetreten ist. Aus diesem Element können wir den Dateinamen (das Attribut filename) erhalten. Schließlich geben wir den resultierenden Dateinamen auf dem Bildschirm aus.

Dank des Traceback-Moduls können wir den Namen der Datei, in der der Fehler aufgetreten ist, leicht abrufen und diese Informationen verwenden, um das Problem weiter zu debuggen und zu beheben.