在Python中引发异常时如何停止程序?

时间:2009-01-13 13:13:24

标签: python exception-handling

我需要在Python中引发异常时停止我的程序。 我该如何实现呢?

6 个答案:

答案 0 :(得分:41)

您可以停止捕获异常,或者 - 如果您需要捕获它(进行一些自定义处理),您可以重新加注:

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

请注意,在不传递异常对象的情况下键入raise会导致保留原始回溯。通常它比raise e好得多。

当然 - 您也可以明确调用

import sys 
sys.exit(exitCodeYouFindAppropriate)

这会导致引发SystemExit异常,并且(除非您在某处捕获它)使用指定的退出代码终止您的应用程序。

答案 1 :(得分:38)

import sys

try:
  print("stuff")
except:
  sys.exit(1) # exiing with a non zero value is better for returning from an error

答案 2 :(得分:12)

如果您不处理异常,它将向上传播调用堆栈直到解释器,然后解释器将显示回溯并退出。 IOW:您不必执行任何以在发生异常时退出脚本。

答案 3 :(得分:5)

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

答案 4 :(得分:5)

import sys

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

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

答案 5 :(得分:-2)

import sys

try: 
    # your code here
except Exception as err:
    print("Error: " + str(err))
sys.exit(50) # whatever non zero exit code