【问题标题】:Python 2.7 : difference between exit() and raise ValueError("example")Python 2.7:exit() 和 raise ValueError("example") 之间的区别
【发布时间】:2013-09-27 09:16:42
【问题描述】:

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

【问题讨论】:

  • exit 退出,而raise 报错,表示有错误,可以被捕获
  • sys.exit() raises SystemExit, 终止解释器没有回溯,但原理是一样的,是的。

标签: python python-2.7 exception-handling


【解决方案1】:

差别很大。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-20
    • 2013-10-29
    • 1970-01-01
    • 2013-12-11
    • 2021-09-25
    • 2017-03-04
    • 2012-03-14
    • 1970-01-01
    相关资源
    最近更新 更多