根据如何在不回溯的情况下退出Python? https://stackoverflow.com/q/1187970/3357935, 呼叫sys.exit()
在 Python 脚本中应该静默退出而不进行回溯。
import sys
sys.exit(0)
但是,当我在 Windows 7 上从命令行启动脚本时python -i "exit.py"
, (或从记事本++ https://stackoverflow.com/q/1702586/3357935),回溯SystemExit https://docs.python.org/3/library/exceptions.html#SystemExit显示异常。
U:\>python -i "exit.py"
Traceback (most recent call last):
File "exit.py", line 2, in <module>
sys.exit(0)
SystemExit: 0
>>>
Why is sys.exit()
从 Windows 命令行运行时显示回溯?
(作为参考,我在 Windows 7 上使用 Python 3.6.4)
您正在运行 Python-i
flag. -i抑制通常的特殊处理SystemExit例外sys.exit raises https://github.com/python/cpython/blob/v3.6.4/Python/pythonrun.c#L578;由于特殊处理被抑制,Python 执行正常的异常处理,打印回溯。
可以说,-i
应该只抑制特殊处理的“退出”部分,并且不会导致打印回溯。你可以提出一个错误报告 https://bugs.python.org/;我没有看到任何现有的相关报告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)