Python 2.7:exit()和raise Value之间的区别("example")

elb*_*ajo 4 python exception-handling python-2.7

有什么区别exit()raise ValueError("example")除了事实,使用时,我会对我的输出错误打印raise ValueError("example")

Mar*_*ers 6

这是个很大的差异.

sys.exit()引发一个SystemExit异常,Python总是捕获并变成程序退出代码.

ValueError如果未被捕获,则提升会触发sys.excepthook()处理程序,然后Python退出.默认的除了钩子打印异常的回溯stderr,之后Python以退出代码1退出.

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