所以我写了一些文字冒险并且有很多嵌套的if语句。但是,有时候我想在其中一个if语句中终止程序以给出" GAME OVER"。我已经尝试过quit()和exit(),但最多还是会输出错误信息:
Traceback (most recent call last):
File "<string>", line 9, in 0
SystemExit: 0
我没有使用任何try / except语句,只是语句。 例如:
import sys
if True:
print "Hello guv'na"
if True:
print "Good day, Good day"
sys.exit(0)
if True:
print "What's all this then?"
的产率:
Hello guv'na
Good day, Good day
Traceback (most recent call last):
File "/Users/austin/test.py", line 6, in 0
builtins.SystemExit: 0
我只是希望程序在&#34之后终止;美好的一天,美好的一天&#34;没有消息。这有可能吗?
答案 0 :(得分:0)
如果您看到异常,则意味着某些东西正在捕捉并打印出来。
我的猜测是你有一个像这样的try / except块:
try:
do_something()
except:
print_exc()
此处except:
子句未指定异常类型,这意味着将捕获所有类型的异常(包括SystemExit
)。
裸except:
子句用于清理代码,通常在捕获之后重新引发异常。除非你绝对需要它们,否则请避开它们。
请改用:
try:
do_something()
except Exception:
print_exc()
这样,您只会捕获Exception
个子类,即除SystemExit
,KeyboardInterrupt
和GeneratorExit
之外的所有标准例外。
答案 1 :(得分:0)
蛮力方法(下面)应该做你想要的(无论如何都要杀掉程序)。
import os
os.system('pkill python')