当 Python 中引发异常时,我需要停止我的程序。 我如何实现这一点?
据我所知,如果脚本没有捕捉到异常,它将被中断。
import sys try: print("stuff") except: sys.exit(1) # exiting with a non zero value is better for returning from an error
可以停止捕获异常,或者-如果需要捕获异常(执行一些自定义处理) ,可以重新引发:
try: doSomeEvilThing() except Exception, e: handleException(e) raise
请注意,在不传递异常对象的情况下键入 raise将导致保留原始回溯。通常它比 raise e好得多。
raise
raise e
当然,您也可以显式调用
import sys sys.exit(exitCodeYouFindAppropriate)
这会引发 SystemExit 异常,并且(除非在某个地方捕捉到异常)使用指定的退出代码终止应用程序。
如果您不处理异常,它将向上传播调用堆栈到解释器,然后解释器将显示回溯和退出。IOW: 当发生异常时,您不必执行 什么都行来使脚本退出。
import sys try: import feedparser except: print "Error: Cannot import feedparser.\n" sys.exit(1)
现在我们的状态代码是1。输出错误消息、写入日志和进行清理通常也很有帮助。
import sys try: # your code here except Exception as err: print("Error: " + str(err)) sys.exit(50) # whatever non zero exit code