72

Pythonで例外が発生したときに、プログラムを停止する必要があります。これを実装するにはどうすればよいですか?

4

6 に答える 6

66
import sys

try:
  print("stuff")
except:
  sys.exit(1) # exiing with a non zero value is better for returning from an error
于 2009-01-13T13:16:02.897 に答える
61

例外のキャッチを停止するか、(カスタム処理を行うために) キャッチする必要がある場合は、次のように再発生させることができます。

try:
  doSomeEvilThing()
except Exception, e:
  handleException(e)
  raise

raise例外オブジェクトを渡さずに入力すると、元のトレースバックが保持されることに注意してください。通常、これは よりもはるかに優れていraise eます。

もちろん、明示的に呼び出すこともできます

import sys 
sys.exit(exitCodeYouFindAppropriate)

これにより SystemExit 例外が発生し、(どこかでキャッチしない限り) 指定された終了コードでアプリケーションを終了します。

于 2009-01-13T14:33:53.737 に答える
15

例外を処理しないと、コール スタックがインタープリターまで伝搬され、インタープリターはトレースバックを表示して終了します。IOW :例外が発生したときにスクリプトを終了させるために何もする必要はありません。

于 2009-01-13T19:52:52.550 に答える
7
import sys

try:
    import feedparser
except:
    print "Error: Cannot import feedparser.\n" 
    sys.exit(1)

Here we're exiting with a status code 1. 通常は、エラー メッセージを出力し、ログに書き込み、クリーンアップすることも役立ちます。

于 2009-11-18T22:36:25.213 に答える
6

私の知る限り、スクリプトで例外がキャッチされない場合、スクリプトは中断されます。

于 2009-01-13T13:15:53.473 に答える