【问题标题】:What is the point of using sys.exit (or raising SystemExit)?使用 sys.exit(或提高 SystemExit)有什么意义?
【发布时间】:2020-03-02 12:31:11
【问题描述】:

这个问题不是关于如何使用sys.exit(或直接提高SystemExit),而是关于你为什么要使用它。

  1. 如果程序成功终止,我认为最后明确退出没有意义。
  2. 如果程序因错误而终止,只需引发该错误。为什么需要显式退出程序或为什么需要退出代码?

【问题讨论】:

  • 一个程序可以 e. G。是更大的批处理/shell脚本的一部分,如果发生错误,它应该做出不同的反应。如果退出代码更容易处理,则脚本不需要解析 Python 程序的输出来检查错误。
  • 您是在问什么退出代码对……有好处吗? stackoverflow.com/questions/393845/…
  • “我认为最后明确退出没有意义。” 您假设sys.exit 只能在程序结束时调用。这不是真的!
  • 对于其他想要导入您的代码的程序员,他们也可以通过捕获SystemExitBaseException 来对您的控制流的终止做出反应。

标签: python


【解决方案1】:

让程序以异常退出并不用户友好。更准确地说,当用户是 Python 程序员时,这完全没问题,但如果您向最终用户提供程序,他们会期望得到很好的错误消息,而不是他们无法理解的 Python 堆栈跟踪。

此外,如果您使用 GUI 应用程序(例如通过 tkinter 或 pyQt),回溯可能会丢失,特别是在 Windows 系统上。在这种情况下,您将设置错误处理,该处理将为用户提供相关信息,然后从错误处理例程中终止应用程序。 sys.exit 适用于该用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2016-12-12
    相关资源
    最近更新 更多