2016-12-06 4 views
0

Pythonでは、キャッチされない例外がプログラムを終了/終了するように、デフォルトの例外処理の動作を変更する方法はありますか?私は一般的なのtry-除くブロックでプログラム全体をラップする必要はありませんPython:exceptions 'exiting'を作成する

:より多くの特異性および/またはこれはすでにそうであると主張を求めたものについては

try: 
    // write code here 
except Exception: 
    sys.exit(1) 

、それは私の理解だことはありません全てのPythonの例外は、システム射出されている:docs

編集:それは私が問題を複雑にするプロセスをフォークしているように見えるので、私自身の混乱についての具体的な詳細を掲載されることはありません。例外は、すべての基本クラスですので

あなたは、元の質問への答えを探しているなら、ドミトリーさんのコメントが面白いと便利ですが、this question

+1

未知の例外は既にそれを行います。あなたはもっと具体的になりますか? – TigerhawkT3

+0

例外を明示的にキャッチしていない場合、例外は既にプログラムを終了します。 –

+1

http://stackoverflow.com/questions/6598053/python-global-exception-handling、第2の回答 –

答えて

0

への第二の答えを参照する代わりに、例外の特定の例外を使用することができます例外。詳細はException tutorial

を参照してくださいあなたは正確にあなたが不足しているあるものを見つけるために、この異なるアプローチを試してみてくださいthis-

try: 
    # write code here 
except OverflowError: 
    raise SystemExit 
except ArithmeticError: 
    sys.exit() 
except IOError: 
    quit() 

のようなスクリプトを書くことができます。

編集1 - 維持プログラムの実行プログラムの実行は、このワン

は、あなたがそうコードの下に追加する必要がerror_handlerは機能があなたの主な方法では、その後SystemExit例外を高めて考える試す維持するために

プログラムの実行を維持することができます。

try: 
    error_handler() 
except SystemExit: 
    print "sys.exit was called but I'm proceeding anyway (so there!-)." 
関連する問題