exit関数と終了ステータス¶
Pythonのexit
関数について¶
Pythonには、3つのexit
関数があります。
組み込み関数
exit(status=None)
:Pythonインタープリタを終了するための関数です。標準入力をclose
し、SystemExit(status)
例外(後述)を送出することでPythonインタープリタを終了します。exit
関数は、Pythonインタープリタ起動時にsite
モジュールのsetquit
関数で定義されます。str(exit)
で使い方がわかります。sys.exit(status=None)
:Pythonを終了するための関数です。SystemExit(status)
例外(後述)を送出することでPythonを終了します。os._exit(status=None)
:Pythonを終了するための関数です。例外処理をせずに直ちに終了します。
参考:sys.exit
PythonのSystemExit
例外について¶
SystemExit(status=None)
例外が発生すると、try
ステートメントのexcept
節やfinally
節があれば適切に処理します。
BaseException
を継承しており、Exception
ではキャッチされません。
例外が処理されないと、スタックトレースを表示せずに Pythonを終了します。
引数のstatus
の値により次のように処理されます。
None
:終了ステータスを0
とします。整数値:終了ステータスを整数値とします。
上記以外のオブジェクト:標準エラー出力にオブジェクトを表示し、終了ステータスを
1
とします。
プロセスの終了ステータスとは¶
終了ステータスは、OSで実行中のプロセスから親のプロセスに実行結果を通知される整数値です。リターンコードとも言われます。
0のときは正常終了を意味し、それ以外では異常終了を表します。
OSのシェルからPythonコマンドを実行した場合は、exit
関数によりPythonコマンドの実行結果としてシェルに終了ステータスが通知されます。
参考:終了ステータス