除了使用raise ValueError("example")
时我的输出上会打印错误之外,exit()
和raise ValueError("example")
之间有什么区别吗?
两者之间有很大的不同。
sys.exit()
引发一个SystemExit
异常,Python 总是捕获该异常并转换为程序退出代码。
如果未捕获,则引发ValueError
,将触发sys.excepthook()
处理程序,之后 Python 退出。默认的 except hook 将异常的回溯打印到 stderr
,之后 Python 以退出代码 1 退出。
sys.excepthook()
函数永远不会被调用SystemExit
,因此您无法自定义该异常的处理,但可以处理ValueError
和其他异常的处理。