読者です 読者をやめる 読者になる 読者になる

methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

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

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

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

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