Wie bekomme ich bessere Fehlerinformationen mit try / catch in Python?

8

Betrachten Sie diesen try / catch-Block, den ich für die Überprüfung der in e gespeicherten Fehlermeldung verwende.

Try / Catch, um die e zu erhalten

%Vor%

Das Objekt e enthält hier nichts mehr als die obige Zeichenfolge. Wenn Python einen nicht behandelten Fehler meldet, zeigt es jedoch eine ziemlich detaillierte Information wie folgt:

%Vor%

Meine Frage ist, wie bekomme ich die Informationen wie oben (die Datei und die Zeilennummer usw.)? Oder, wenn e diese Information enthält, wie wird sie darin gespeichert?

    
prosseek 13.09.2010, 01:37
quelle

3 Antworten

10

Dies zeigt die Ablaufverfolgung zum Fehler.

%Vor%     
eat_a_lemon 13.09.2010, 02:02
quelle
3

Wie die ersten beiden Antworten verwenden Sie traceback . Hier ist ein vollständigeres Beispiel.

%Vor%

Wenn Sie es ausführen, sehen Sie

%Vor%     
Wai Yip Tung 13.09.2010 06:00
quelle
2
  1. Siehe die traceback Bibliothek.
  2. Wenn Sie Fehler einfach über die Kette weiterleiten möchten, anstatt sie zu ändern, können Sie einfach raise innerhalb eines except -Blocks verwenden, der dann wie der except -Block funktioniert (abgesehen von irgendwelchen) bedingte Logik / Nebeneffekte, die Sie möglicherweise vor dem raise ) gemacht haben.
Amber 13.09.2010 01:55
quelle

Tags und Links