Pythonで例外が発生した際に、その例外の詳細な情報(発生した行番号やファイル名など)を取得する方法について説明します。
Pythonでは、sys
モジュールのexc_info()
関数を使用して例外の詳細情報を取得することができます。この関数は、例外の型、例外のインスタンス、トレースバックオブジェクトの3つの値を含むタプルを返します。
以下に、例外が発生した際にその詳細情報を表示するサンプルコードを示します。
import sys, os
try:
raise NotImplementedError("No error")
except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info()
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
print(exc_type, fname, exc_tb.tb_lineno)
このコードでは、NotImplementedError
を発生させ、その例外をキャッチしています。例外がキャッチされると、sys.exc_info()
関数を呼び出して例外の詳細情報を取得し、その情報を表示しています。
このように、Pythonではsys.exc_info()
関数を使用することで、例外が発生した際の詳細な情報を取得することができます。これにより、デバッグ時に問題の原因を特定しやすくなります。