2016-07-01 73 views
1

在我的代码中,我试图处理一个逻辑错误。我想用一个错误代码退出程序,如果我执行sys.exit(1)它会引发一个我不想要的追踪错误。 但是,如果我做os._exit(1)它不是清洁剂出口。Python在逻辑错误上退出

我的需求: 与os退出只是错误代码,但需要一个更清洁的出口像sys

回答

2

使用sys.exit(1)无论如何sys.excepthook()中的标准Python回溯挂钩完全处理SystemExit,不会打印回溯。来自SystemExit exception documentation

这个例外是由sys.exit()函数引发的。当它不被处理时,Python解释器退出; 没有堆栈回溯打印

大胆重视我的。

如果你的程序有一个顶级异常处理程序,不要抓住SystemExit。通常你通过不使用毯子except:声明来做到这一点,而是通过捕获except Exception:来代替。