我知道我应该避免陷入这些情况,但是我喜欢使用iPython并在进行实验时保留变量。我从Spyder中粘贴了代码段,然后让它们运行,然后检查变量等。现在,我有一段代码如下:
for a in range(bignum):
try:
<something>
except:
print('Badness')
我一开始就意识到那里有一个错误,但是现在我无法使用ctrl-C停止它,因为try / except只是打印消息并继续前进。有没有一种方法可以在不放弃会话的情况下停止循环?
答案 0 :(得分:2)
您可以在break
子句中使用except
来使自己摆脱循环。或者,您可以将for循环 移到try / except块中。如果您想为KeyboardInterrupt
(ctrl + c)做一件事而为任何其他异常做另一件事,则可以分别捕获其中之一。
for a in range(big_num):
try:
pass # Do your thing
except KeyboardInterrupt:
print("You pressed ctrl c...")
break
except Exception as e: # Any other exception
print(str(e)) # Displays the exception without raising it
break
或
try:
for a in range(big_num):
pass # Do your thing
except KeyboardInterrupt:
print("You pressed ctrl c...")
except Exception as e:
print(str(e))