Nach Python's Logging tutorial, logging.error
ist zu verwenden "zu melden Unterdrückung eines Fehlers ohne eine Ausnahme zu erheben.", Während, wenn ich einen Fehler melden wollte ich nur eine Ausnahme auslösen und Verwenden Sie nicht logging
überhaupt.korrekte Art der Anzeige von Fehlermeldungen
Was ist, wenn ich einen Fehler melden und dann eine Ausnahme auslösen möchte?
Zum Beispiel:
try:
os.path.getsize('/nonexistent')
except os.error as error:
logging.error(str(error))
logging.error('something went wrong')
raise SystemExit(1)
Daraus ergeben sich die folgenden Zeilen an dem Standardfehler gedruckt wird:
ERROR:root:[Errno 2] No such file or directory: '/nonexistent'
ERROR:root:something went wrong
Es scheint sinnvoll. Oder:
try:
os.path.getsize('/nonexistent')
except os.error as error:
logging.error(str(error))
raise SomeUserDefinedException('something went wrong')
Ist diese schlechte Praxis?
Also was soll man für das Melden von Fehlern verwenden? –
Sie sollten das Protokollierungssetup global haben, um alle Fehler und Ausnahmen abzufangen, und es wird die Ausnahmemeldung angezeigt, die Sie in der 'raise' Bedingung gesetzt haben. – MrE