Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Python3.x】AssertionError::__context__定数の使い方

__context__定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

__context__定数は、Pythonの例外処理において、現在発生している例外の「コンテキスト例外」(元の例外)を保持する特別な定数です。

プログラムの実行中にエラーが発生し、そのエラーを捕捉するexceptブロックなどの処理中に、予期せず別のエラーが発生することがあります。このような状況を「例外の連鎖」と呼びます。

この例外の連鎖が起こると、新しく発生した例外オブジェクトには、元の例外オブジェクトへの参照が__context__として自動的に設定されます。これは、AssertionErrorを含む全ての例外オブジェクトが持つ特殊な属性です。

この__context__を利用することで、複数の例外が連鎖して発生した場合でも、開発者は最初にエラーを引き起こした根本原因の例外を特定し、効率的なデバッグを行うことができます。

Pythonのトレースバック出力には__context__の情報も自動的に含まれるため、エラー発生の経緯を追跡し、問題解決に役立てることが可能です。システムエンジニアを目指す初心者の方にとっても、デバッグ作業の大きな手助けとなります。

構文(syntax)

1try:
2    1 / 0
3except ZeroDivisionError:
4    try:
5        assert False
6    except AssertionError as e:
7        e.__context__

引数(parameters)

引数なし

引数はありません

戻り値(return)

BaseException | None

この定数は、例外処理のコンテキスト、つまり例外を発生させた別の例外情報を表します。例外が発生しなかった場合はNoneを返します。

関連コンテンツ