Ich habe ein extrem seltsames Verhalten, das zu stillen Ausnahmen zu führen scheint. Wie kann ich einen allgemeinen Try-Catch schreiben, in dem ich alle Ausnahmen debuggen kann? Etwas in der Art von:
try:
# something that fails
except e:
print e
Ein bisschen mehr über das Problem im Detail:
Ich habe eine Django-App, die auf meinem Computer (Ubuntu Linux 8.10) sowohl über Runserver als auch über Mod-Python einwandfrei funktioniert. Auf dem Bereitstellungsserver (Ubuntu Linux 8.10) funktioniert es einwandfrei über den Runserver, schlägt jedoch über Apache in Mod-Python fehl.
Ich habe die Ursache auf einen Teil der App reduziert, der Berkeley DB (bsddb.db) und Sekundärschlüssel verwendet. Die Rückrufmethode für Sekundärschlüssel verwendet Pickle zum Formatieren der Schlüssel. Es schlägt fehl, wenn ich pickle für einen einzelnen Wert aufrufe. Es schlägt jedoch nur fehl, wenn ich cPickle verwende, und die Verwendung von pickle für dieselben Werte außerhalb der Rückruffunktion funktioniert ebenfalls.
Ich möchte nur wissen, warum es mit cPickle fehlschlägt.
Das Traceback-Modul ist sehr nützlich zum Formatieren von Tracebacks. Sie können es dann in eine Protokolldatei schreiben.
quelle
Funktioniert das? ::
quelle
BaseException
- es beinhaltetSystemExit
undKeyboardInterrupt
Dinge, die du normalerweise nicht fangen willst.