Python
で例外発生時にプログラムを終了させず、フルのトレースバック情報を取得したい場合、traceback
モジュールが非常に有用です。通常、例外をキャッチすると、traceback.print_exc()
を使ってエラーの詳細を出力できます。
import traceback
try:
# エラーが発生する可能性のあるコード
raise Exception("エラーメッセージ")
except Exception as e:
traceback.print_exc()
このコードにより、エラーのスタックトレース全体が標準出力に表示されます。また、traceback.format_exc()
を使えば、トレースバックを文字列として取得できます。
error_trace = traceback.format_exc()
print(error_trace)
さらに、エラーをログに記録したい場合は、logging
モジュールを使用します。例えば、logger.exception()
を使うことで、エラーメッセージとフルトレースバックが自動的にログに記録されます。
import logging
logging.basicConfig(level=logging.ERROR)
logger = logging.getLogger(__name__)
try:
# エラーが発生するコード
raise Exception("ログに記録するエラー")
except Exception as e:
logger.exception(e)
これにより、エラーメッセージとトレースバックがログに出力され、後から確認することが可能です。
まとめ
traceback.print_exc()
は、標準出力にトレースバックを出力します。traceback.format_exc()
を使うと、トレースバックを文字列として取得可能です。- ログにエラーを記録する場合は、
logging.exception()
を使用します。 このように、Python
では例外処理時に豊富なトレースバック情報を効率的に扱う方法が提供されています。