tracebackをログに残す場合のお約束コード

import traceback
try:
   ...
except:
   log.error(traceback.format_exc())
   raise

例外は、こまめにチェックするよりも、あえてチェックしない方が良いことがある。
とくに、例外をcatchしておいて、結局自作の情報量が少ない例外を再送出するのは最悪。
エラーが起きたらログだけ取って、例外自体はそのまま上に流したい場合は、exceptブロックの中でraiseする。Webアプリにありがちなシチュエーション。

traceback.format_exc()は超便利だけどすぐ忘れるのでここにメモしとく。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。