当Python中出现异常时,我需要停止我的程序。 我该如何实现?
import sys
try:
print("stuff")
except:
sys.exit(1) # exiting with a non zero value is better for returning from an error
sys.exit(1)
更加适合? - kramer650
表示“无错误完成”。由于 sys.exit
调用似乎是由一个错误引起的,因此应该产生一个不是 0
的程序退出代码。1
只是一个建议。 - Deestan你可以停止捕获异常,或者 - 如果你需要捕获它(以执行一些自定义处理),你可以重新引发:
try:
doSomeEvilThing()
except Exception, e:
handleException(e)
raise
注意,如果没有传递异常对象就使用 raise
,则原始的回溯信息将被保留。通常情况下,这比使用 raise e
要好得多。
当然,你也可以显式地调用
import sys
sys.exit(exitCodeYouFindAppropriate)
这会导致SystemExit异常被引发,除非你在某个地方捕获它,否则会以指定的退出代码终止你的应用程序。如果你不处理异常,它会向上传递到解释器的调用堆栈中,然后显示一个回溯信息并退出。换句话说:当异常发生时,你就无需做任何事情即可使脚本退出。
import sys
try:
import feedparser
except:
print "Error: Cannot import feedparser.\n"
sys.exit(1)
这里我们使用状态码 1 来退出。通常还有帮助输出错误消息、写入日志和清理的操作。
logging.exception
将回溯写入日志,向用户提供有意义的反馈,然后退出而不重新引发异常。 - cowbert