【发布时间】:2019-10-17 18:21:29
【问题描述】:
我知道我应该避免陷入这些情况,但我喜欢使用 iPython 并在实验时保留变量。我从 Spyder 中粘贴一段代码并让它们运行,然后检查变量等。现在,我有一段这样的代码:
for a in range(bignum):
try:
<something>
except:
print('Badness')
我启动它并意识到我在那里有一个错误,但现在我无法使用 ctrl-C 停止它,因为 try/except 只是打印消息并继续前进。有没有办法在不丢弃我的会话的情况下停止循环?
【问题讨论】:
-
在没有特定例外的情况下使用“包罗万象”
except子句通常是个坏主意。只需为其添加相关异常,您的KeyboardInterrupt将不会被捕获。 -
是的,我已经吸取了教训,但我很好奇,一旦我犯了错误,是否有任何方法可以摆脱。
-
所以要明确一点:您当前正在运行一个无法使用 Ctrl+C 停止的会话,并且您想知道是否有任何方法可以在不更改代码的情况下挽救该会话?
-
这是我不止一次犯的错误。我目前没有受苦,但我想知道问题的答案(可以挽救会话吗?)。我知道专门捕获 KeyboardInterrupt 的选项,但在测试想法的热潮中,我并不总是这样做,愚蠢地没想到会出现问题。