根据How to exit from Python without traceback?的说法,在Python脚本中调用sys.exit()应该以静默方式退出而不进行追溯。

import sys
sys.exit(0)

但是,当我使用python -i "exit.py"((or from Notepad++)在Windows 7上从命令行启动脚本时,将显示 SystemExit 异常的回溯。

U:\>python -i "exit.py"
Traceback (most recent call last):
  File "exit.py", line 2, in <module>
    sys.exit(0)
SystemExit: 0
>>>

从Windows命令行运行时,为什么sys.exit()显示回溯?

(供引用,我在Windows 7上使用Python 3.6.4)

最佳答案

您正在使用-i标志运行Python。 -i suppresses the usual special handling of the SystemExit exception sys.exit raises;由于抑制了特殊处理,因此Python执行常规的异常处理,该异常处理将显示回溯。

可以说,-i应该只禁止特殊处理的“退出”部分,而不应引起回溯打印。你可以举一个bug report;我没有任何现有的相关报告。

关于python - 为什么sys.exit()引起回溯?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48571212/

10-11 22:58
查看更多