如何解决有没有办法使用 sys.exit() 退出我的程序而无需在 python 中进行回溯?
程序在我想要的地方结束,带有正确的 SystemExit 消息,但是在 SystemExit 之前的行中出现了 Traceback,显示了它退出的行。有没有办法只显示 SystemExit 和消息而没有回溯?我在程序的开头有“import sys”。
我在这部分的代码是:
if guess == 'q':
print('q')
sys.exit('You exited the game')
不需要的输出说:
Traceback (most recent call last):
File "filelocation\programname.py",line 38 in <module>
sys.exit('You exited the game')
想要的输出一行后面说:
SystemExit: You exited the game
解决方法
sys.exit
的参数 not 用于打印退出消息。它旨在提供一个应该是整数的 exit code(老实说,我很惊讶底层系统调用没有抱怨参数是字符串)。
如果您想提供消息,请使用 print
并调用 sys.exit(0)
。任何其他退出代码都被视为错误,因此是堆栈跟踪。
EDIT:事实上,sys.exit
docs 表示 sys.exit
的参数可以是非整数作为退出 并出现错误的快捷方式(同样是堆栈跟踪)。
可选参数 arg 可以是给出退出状态的整数(默认为零)或其他类型的对象。 ... 特别是 sys.exit("some error message") 是一种在发生错误时退出程序的快捷方式。
,您可以从 sys.exit 中取出字符串:
import sys
guess = 'q'
if guess == 'q':
print('q')
print('SystemExit: You exited the game')
sys.exit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。