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

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

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

作成日: 更新日:

基本的な使い方

__context__定数は、Pythonの例外オブジェクトに付随し、現在処理中の例外が発生する直前にアクティブだった、先行する例外オブジェクトを保持する定数です。

この定数は、ある例外を処理している最中に、新たに別の例外が発生した場合に自動的に設定されます。例えば、exceptブロックやfinallyブロックの実行中に発生した例外、あるいはwithステートメントの終了処理中に発生した例外など、元の例外のコンテキストで新たな例外が起きた際に、先行する例外の情報が__context__に保持されます。

__context__は、Pythonが例外の連鎖(チェイン)を自動的に記録する仕組みの一つであり、特にraise new_exception from original_exceptionのようなfrom句を使って明示的に原因の例外を指定しなかった場合に、発生時の文脈を把握するために重要な役割を果たします。

システムエンジニアを目指す初心者にとって、プログラムのデバッグは避けられない作業です。__context__の情報を活用することで、エラーがどのように関連しているか、あるいは特定の例外が発生するに至った経緯を深く理解し、問題の原因を効率的に特定する手助けとなります。このように、__context__は堅牢なアプリケーション開発とデバッグプロセスにおいて非常に有効なツールです。

構文(syntax)

1try:
2    try:
3        raise ValueError("Original error")
4    except ValueError:
5        raise TypeError("Error during handling original error")
6except TypeError as e:
7    exception_context = e.__context__

引数(parameters)

引数なし

引数はありません

戻り値(return)

BaseException | None

例外処理において、現在の例外が発生する直接の原因となった例外オブジェクト、または None を返します。

関連コンテンツ