特に想定していない例外が発生した場合、例外が発生したコードのトレース情報を出力したいが、以下のようなコードでは出力されない。
import sys
def RaiseTest01():
raise ValueError
def RaiseTest_main():
RaiseTest01()
try:
RaiseTest_main()
except:
print("例外発生", sys.exc_info())
例外発生 (<class 'ValueError'>, ValueError(), <traceback object at 0x000000000394D588>)
他にいくつかパターンがあるようだが、traceback モジュールを利用してトレース情報を出力することができる。
import sys
import traceback
def RaiseTest01():
raise ValueError
def RaiseTest_main():
RaiseTest01()
try:
RaiseTest_main()
except:
print("例外発生", sys.exc_info())
traceback.print_exc()
例外発生 (<class 'ValueError'>, ValueError(), <traceback object at 0x000000000394D588>)
Traceback (most recent call last):
File "C:\Users\pyutil\traceback_test.py", line 13, in <module>
RaiseTest_main()
File "C:\Users\pyutil\traceback_test.py", line 10, in RaiseTest_main
RaiseTest01()
File "C:\Users\pyutil\traceback_test.py", line 6, in RaiseTest01
raise ValueError
ValueError
0 件のコメント:
コメントを投稿