Saya memiliki beberapa perilaku yang sangat aneh yang tampaknya menghasilkan pengecualian diam-diam. Bagaimana saya bisa menulis try catch umum di mana saya dapat men-debug semua pengecualian. Sesuatu di sepanjang baris:
try:
# something that fails
except e:
print e
Sedikit lebih banyak tentang masalah yang dihadapi secara mendetail:
Saya memiliki aplikasi Django yang di komputer saya (Ubuntu Linux 8.10) berfungsi dengan baik melalui runserver dan mod-python. Pada server penyebaran (Ubuntu Linux 8.10) ini bekerja dengan baik melalui runserver, tetapi gagal melalui apache di mod-python.
Saya telah mengurangi penyebabnya menjadi sebagian dari aplikasi yang menggunakan Berkeley DB (bsddb.db), dan kunci sekunder. Metode callback untuk kunci sekunder menggunakan pickle untuk memformat kunci. Gagal ketika saya memanggil acar pada satu nilai. Namun, itu hanya gagal ketika saya menggunakan cPickle, dan menggunakan acar pada nilai yang sama di luar fungsi callback juga berfungsi.
Saya hanya ingin tahu mengapa gagal dengan cPickle.
The modul traceback cukup berguna untuk memformat tracebacks. Anda kemudian dapat menuliskannya ke file log.
sumber
Apakah ini berhasil? :
except BaseException, e:
sumber
BaseException
- itu termasukSystemExit
danKeyboardInterrupt
, hal-hal yang biasanya tidak ingin Anda tangkap.