我需要在Python中引发异常时停止我的程序。 我该如何实现呢?
答案 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