sys.exit(' message')不在IDLE中打印

时间:2015-07-18 11:33:40

标签: python-2.7 printing message exit sys

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

import sys

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

1 个答案:

答案 0 :(得分:1)

您的错误消息打印到stderr,但未显示在IDLE中,因为它在子流程中运行(请参阅此report观察点和此related answer)。所以IDLE将它写在用于启动IDLE的终端上。

文档说明sys.exit的参数:

  

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

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