ふわふわpython-tracebackを使用して詳細な例外情報を取得
try:
1/0
except Exception,e:
print e
出力結果はinteger division or modulo by zeroで、このエラーが報告されただけで、どのファイルでどの関数のどの行が報告されたのか分かりません.
次にtracebackモジュールを使用します
import traceback
try:
1/0
except Exception,e:
traceback.print_exc()
出力結果は
Traceback (most recent call last):
File "test_traceback.py", line 3, in
1/0
ZeroDivisionError: integer division or modulo by zero
これは、デバッグに非常に直感的に役立ちます.
traceback.print_exc()とtraceback.format_exc()の違いは何ですか?
format_exc()は文字列を返し、print_exc()は直接印刷されます.
すなわちtraceback.print_exc()とprint traceback.format_exc()効果は同じです.
print_exc()はfileパラメータを直接ファイルに書き込むこともできます.たとえば
traceback.print_exc(file=open('tb.txt','w+'))
tb.txtファイルに書き込みます.