Python

トップ > チップス > Python
2013-03-31, python

例外ハンドラを登録する

try .. exceptよりも広範に発生し得る例外を漏れなくキャッチしたいという場合に利用します。sysモジュールのexcepthookに独自の関数を割り当てることができます。

def eh(type,value,tb):
    sys.__excepthook__(type,value,tb)
    print "%s %s %s" % (type,value,tb)

sys.excepthook = eh

raise IOError("Test!")

上記のスクリプトを実行すると以下のような出力が得られます。最下行が独自に定義したprint文による出力で、その上は全て規定のスタックトレースが表示されています。

Traceback (most recent call last):
  File "test.py", line 12, in ?
    raise IOError("Test!")
IOError: Test!
exceptions.IOError Test! <traceback object at 0x2b96ac9ea4d0>

参考URL

この記事は役に立ちましたか?