在Python中,是否有任何(正确的)方法来更改默认的异常处理行为,以便任何未捕获的异常将终止/退出程序?
我不想将整个程序包装在一个通用的try-except块中:
try:
// write code here
except Exception:
sys.exit(1)
对于那些要求更多特异性和/或声称已经是这种情况的人来说,我的理解是并非所有Python异常都是系统退出的:docs
编辑:看起来我的分叉流程使问题变得复杂,所以不会发布有关我自己的混乱的任何具体细节。
如果您正在寻找原始问题的答案,Dmitry的评论很有趣且有用,请参考this question的第二个答案
答案 0 :(得分:0)
您可以使用特定异常而不是异常,因为异常是所有异常的基类。有关详细信息,请参阅Exception tutorial
您可以像这样编写脚本 -
try:
# write code here
except OverflowError:
raise SystemExit
except ArithmeticError:
sys.exit()
except IOError:
quit()
尝试这种不同的方法来找到你究竟缺少的东西。
编辑1 - 维护程序执行
为了维持你的程序执行,试试这个 -
考虑error_handler函数正在引发SystemExit异常然后在你的main方法中你需要添加下面的代码,这样你就可以维护你的程序执行。
try:
error_handler()
except SystemExit:
print "sys.exit was called but I'm proceeding anyway (so there!-)."