python在逻辑错误时退出

Python Quit on Logical Error

本问题已经有最佳答案,请猛点这里访问。

在我的代码中,我试图处理一个逻辑错误。我想退出带有错误代码的程序,如果我执行sys.exit(1),它会引发一个回溯错误,这是我不希望的。但是,如果我这样做,那就不是更干净的出口。

我的需要:像使用os一样,只使用错误代码退出,但需要像使用sys那样更干净的退出。


无论如何使用sys.exit(1)sys.excepthook()中的标准python回溯钩子处理SystemExit干净,不打印回溯。来自SystemExit例外文件:

This exception is raised by the sys.exit() function. When it is not handled, the Python interpreter exits; no stack traceback is printed.

大胆强调我的。

如果您的程序有一个顶级的异常处理程序,请不要捕获SystemExit。通常情况下,您不使用覆盖的except:语句,而是通过捕获except Exception:来实现这一点。