为什么sys.exit()导致回溯?

Ste*_*ica 5 python cmd exit traceback

根据如何在没有回溯的情况下退出Python?,调用sys.exit()Python脚本应该在没有回溯的情况下静默退出.

import sys
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

但是,当我使用python -i "exit.py"(或从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
>>>
Run Code Online (Sandbox Code Playgroud)

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

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

use*_*ica 8

你正在运行带有-i标志的Python .-i抑制SystemExit异常sys.exit加注的通常特殊处理 ; 由于特殊处理被抑制,Python执行正常的异常处理,打印回溯.

可以说,-i应该只抑制特殊处理的"退出"部分,而不是打印回溯.你可以提出错误报告 ; 我没有看到任何现有的相关报道.