Pythonでは、例外が発生した際にそれに関連する値を取得することができます。これらの値は例外の引数とも呼ばれ、その存在と型は例外の種類によります。
例外処理の基本的な形式は次のようになります。
try:
# 危険な処理
except Exception as e:
# 例外処理
ここで、try
句で発生した例外オブジェクトはexcept Exception as e:
のe
に格納されます。
例外オブジェクトを用いることで、例外名やその説明などのシンプルな情報を取得することが可能です。
try:
1/0
except Exception as e:
print(e.__class__.__name__) # ZeroDivisionError
print(e.args)
print(e) # division by zero
print(f"{e.__class__.__name__}: {e}") # ZeroDivisionError: division by zero
また、traceback
モジュールを使用することで、エラーが発生した箇所の詳細な情報を取得することもできます。
import sys
import traceback
try:
1/0
except Exception as e:
etype, value, tb = sys.exc_info()
print(traceback.format_exception(etype, value, tb))
これらの情報を利用して、エラーハンドリングをより効果的に行うことができます。