2017-07-27 1 views
0

Ich benutze Protokollierung in meinem Code für eine einfachere Kontrolle über die Protokollierungsebene. Eine Sache, die mich ist schon verwirrend istPython - Wann wählen Sie logging.error() über Raise Exception()?

wenn bevorzugen Sie logging.error()-raise Exception()?

Für mich logging.error() nicht wirklich Sinn machen, da das Programm aufhören sollte, wenn sie mit einem Fehler aufgetreten ist, wie das, was raise Exception() tut.

In welchen Szenarien stellen wir eine Fehlermeldung mit logging.error() auf und lassen das Programm weiterlaufen?

Antwort

1

Das hängt nur von Ihrem Prozessfluss ab, aber es läuft im Wesentlichen darauf hinaus, ob Sie einen aufgetretenen Fehler (und wie) behandeln wollen oder ob Sie ihn an den Benutzer Ihres Codes weitergeben wollen - oder beides.

logging.error() wird normalerweise zum Protokollieren verwendet, wenn ein Fehler auftritt - das bedeutet nicht, dass der Code anhalten und eine Ausnahme auslösen sollte, da es korrigierbare Fehler gibt. Zum Beispiel könnte Ihr Code versucht haben, eine Remote-Ressource zu laden - Sie können einen Fehler protokollieren und es später erneut versuchen, ohne eine Ausnahme auszulösen.

btw. Sie können logging verwenden, um eine Ausnahme (voll, mit einem Stack-Trace) unter Verwendung von logging.exception() zu protokollieren.

3

Die Protokollierung dient nur dazu, eine Spur von Ereignissen für eine spätere Überprüfung zu hinterlassen, tut aber nichts, um die Programmausführung zu beeinflussen; Durch das Auslösen einer Ausnahme können Sie einem höheren Anrufer einen Fehlerzustand signalisieren und ihn damit umgehen lassen. Normalerweise verwenden Sie beide zusammen, es ist kein Entweder-Oder.

Verwandte Themen