2016-07-01 5 views
1

私のコードでは、論理エラーを処理しようとしています。エラーコードでプログラムを終了したいのですが、sys.exit(1)を実行すると、トレースバックエラーが発生します。これは望ましくありません。 しかし、もし私がos._exit(1)をしたら、クリーナー出口ではありません。Pythonが論理エラーで終了する

私の必要性: エラーコードだけでosのように終了しますが、sysのようなクリーナー出口が必要です。

答えて

2

sys.exit(1)とにかくです。 sys.excepthook()の標準のPythonトレースバックフックは、SystemExitをきれいに処理します。トレースバックは出力されません。 SystemExit exception documentationから:

この例外は、sys.exit()関数によって発生します。処理されないときは、Pythonインタプリタが終了します。 スタックトレースが印刷されません

太字強調。

プログラムにトップレベル例外ハンドラがある場合は、SystemExitをキャッチしないでください。通常はブランケットexcept:のステートメントを使用しないで、代わりにexcept Exception:をキャッチすることでそれを行います。

関連する問題