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

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

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

作成日: 更新日:

基本的な使い方

__context__定数は、Pythonの例外処理において、ある例外が別の例外によって引き起こされた際に、その原因となった元の例外を保持する定数です。Pythonでは、例外が発生した際に、その例外を処理している途中でさらに別の例外が発生することがあります。このような場合、後から発生した例外の__context__には、先に発生した例外が自動的に設定され、例外の「連鎖」という形でエラーの発生経緯が記録されます。

ExceptionGroupは、複数の独立した例外をまとめて扱うことができる、Python 3.11で導入された特別な例外クラスです。このExceptionGroupオブジェクトの__context__定数も同様に、このExceptionGroupが発生する原因となった単一の例外を指します。例えば、ある一連の処理を実行中に予期せぬエラーが発生し、そのエラーを処理する過程で最終的にExceptionGroupが生成された場合、このExceptionGroupの__context__は、最初に発生した単一のエラーオブジェクトを参照することがあります。

この__context__定数は、エラーメッセージに「During handling of the above exception, another exception occurred:」といった形で表示される例外の連鎖をプログラムから追跡するための重要なメカニズムです。システムエンジニアにとって、複雑なエラー状況における根本原因を特定し、デバッグを行う上で、例外の連鎖を理解し、この__context__定数を活用することは非常に役立ちます。

構文(syntax)

1eg = ExceptionGroup("An error group", [])
2print(eg.__context__)

引数(parameters)

引数なし

引数はありません

戻り値(return)

BaseException | None

この__context__属性は、例外が発生した際に、その例外をラップまたは伝播させた別の例外オブジェクト、もしくはその情報がない場合はNoneを返します。

関連コンテンツ