Python 2.7 : exit() 和 raise ValueError( "example" 的区别



除了使用raise ValueError("example")时我的输出上会打印错误之外,exit()raise ValueError("example")之间有什么区别吗?

两者之间有很大的不同。

sys.exit()引发一个SystemExit异常,Python 总是捕获该异常并转换为程序退出代码。

如果未捕获,则引发ValueError,将触发sys.excepthook()处理程序,之后 Python 退出。默认的 except hook 将异常的回溯打印到 stderr ,之后 Python 以退出代码 1 退出。

sys.excepthook() 函数永远不会被调用SystemExit,因此您无法自定义该异常的处理,但可以处理ValueError和其他异常的处理。

最新更新