私のコードでは、論理エラーを処理しようとしています。エラーコードでプログラムを終了したいのですが、sys.exit(1)
を実行すると、トレースバックエラーが発生します。これは望ましくありません。 しかし、もし私がos._exit(1)
をしたら、クリーナー出口ではありません。Pythonが論理エラーで終了する
私の必要性: エラーコードだけでos
のように終了しますが、sys
のようなクリーナー出口が必要です。
私のコードでは、論理エラーを処理しようとしています。エラーコードでプログラムを終了したいのですが、sys.exit(1)
を実行すると、トレースバックエラーが発生します。これは望ましくありません。 しかし、もし私がos._exit(1)
をしたら、クリーナー出口ではありません。Pythonが論理エラーで終了する
私の必要性: エラーコードだけでos
のように終了しますが、sys
のようなクリーナー出口が必要です。
sys.exit(1)
とにかくです。 sys.excepthook()
の標準のPythonトレースバックフックは、SystemExit
をきれいに処理します。トレースバックは出力されません。 SystemExit
exception documentationから:
この例外は、
sys.exit()
関数によって発生します。処理されないときは、Pythonインタプリタが終了します。 スタックトレースが印刷されません。
太字強調。
プログラムにトップレベル例外ハンドラがある場合は、SystemExit
をキャッチしないでください。通常はブランケットexcept:
のステートメントを使用しないで、代わりにexcept Exception:
をキャッチすることでそれを行います。