【问题标题】:sys.exit('message') isn't printing in IDLEsys.exit('message') 不在 IDLE 中打印
【发布时间】:2015-07-18 11:33:40
【问题描述】:

在 python IDLE 中,使用 sys.exit('') 时它不会打印指定的错误消息,但在 cmd.exe 中会。为什么?

import sys

try:
    print fail
except:
    sys.exit("This is an example of an error message")

【问题讨论】:

    标签: python-2.7 printing message exit sys


    【解决方案1】:

    您的错误消息被打印到stderr,它没有显示在 IDLE 中,因为它在子进程中运行(请参阅您的观察的 reportrelated answer)。所以 IDLE 把它写在用来启动 IDLE 的终端上。

    文档说明了sys.exit 的论点:

    一些系统有一个约定,用于指定特定的含义 特定的退出代码,但这些代码通常不完善; Unix 程序通常使用 2 表示命令行语法错误,使用 1 表示所有 其他类型的错误。如果传递了另一种类型的对象,则 None 是 相当于传递零,任何其他对象都打印到stderr 并导致退出代码为 1。特别是 sys.exit("some error message") 是发生错误时退出程序的快速方法。

    因此,最安全的方法是只传递错误代码并使用额外的print(或调用自定义退出函数,让用户分析发生的情况)。

    【讨论】:

      猜你喜欢
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多