Python 2.7 系统退出(';消息';)是';t在空闲状态下打印

Python 2.7 系统退出(';消息';)是';t在空闲状态下打印,python-2.7,printing,message,exit,sys,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") 您的错误消息将打印到stderr,该消息不会显示在IDLE中,因为它是在子进程中运行的(请参阅您的观察结果和本文)。因此IDLE将其写入用于启动IDLE的终端 文档说明了有关sys.

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

import sys

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

您的错误消息将打印到
stderr
,该消息不会显示在IDLE中,因为它是在子进程中运行的(请参阅您的观察结果和本文)。因此IDLE将其写入用于启动IDLE的终端

文档说明了有关
sys.exit
的参数:

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

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