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

【Python3.x】KeyboardInterrupt::__cause__定数の使い方

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

作成日: 更新日:

基本的な使い方

__cause__定数は、KeyboardInterruptクラスのインスタンスが持つ、例外連鎖における原因例外を表す定数です。

Pythonには、ある例外が別の例外によって引き起こされた場合に、その原因となった例外を記録する「例外連鎖」という仕組みがあります。この__cause__定数は、現在のKeyboardInterrupt例外が「何によって直接引き起こされたか」を示す原因例外オブジェクトを保持する役割を持っています。

具体的には、プログラマが「raise 例外A from 例外B」といった構文を使用して、明示的に原因となる例外(例B)を指定した場合に、その例外オブジェクトがこの定数に設定されます。もし明示的な原因が指定されていない場合、__cause__定数の値はNoneとなります。

KeyboardInterruptは、通常、プログラムの実行中にユーザーがCtrl+Cなどのキー操作によって中断しようとした際に発生する、Pythonの組み込み例外です。そのため、KeyboardInterruptが他の例外によって直接引き起こされるケースは一般的ではありません。しかし、プログラミング上の意図により、例外連鎖の一部として発生させることも技術的には可能です。この定数を確認することで、KeyboardInterruptが発生した背景に、さらに別の例外が関連しているかどうかを調査し、問題の原因究明に役立てることができます。

構文(syntax)

1exception_instance = KeyboardInterrupt()
2print(exception_instance.__cause__)

引数(parameters)

引数なし

引数はありません

戻り値(return)

typing.Optional[BaseException]

KeyboardInterrupt例外が発生した際に、その例外の原因となった別の例外があれば、その例外オブジェクトを返します。原因となった例外がない場合はNoneを返します。

関連コンテンツ