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)

在这里,我们以状态码 1 退出。输出错误消息、写入日志和清理通常也很有帮助。

于 2009-11-18T22:36:25.213 回答
6

据我所知,如果您的脚本没有捕获到异常,它将被中断。

于 2009-01-13T13:15:53.473 回答
-9
import sys

try: 
    # your code here
except Exception as err:
    print("Error: " + str(err))
sys.exit(50) # whatever non zero exit code
于 2020-08-10T13:52:29.063 回答