好吧,假设我有这样的代码:
name = Bob
try:
While True:
print "Whats your name?"
name = raw_input("Name:")
except KeyboardInterrupt:
print name
raw_input("PRESS ENTER TO RESUME")如果我按下CTRL键而不是输入,它就会关闭程序。我怎么能有这个节目的简历?我对线程没有意见,但我从来没有任何运气与他们合作。这将用于另一个更大的程序,该代码只是虚拟代码。我想要的可能吗?
发布于 2015-10-06 22:39:19
程序终止是因为它到达了终点。这与键盘中断无关。你可以通过.恢复程序的执行。将一些代码放在该块下面,或者将代码块包含在一个循环中。
name = "Bob" ## or maybe you could ignore that
while True:
try:
print "Whats your name?"
name = raw_input("Name:")
except KeyboardInterrupt:
print name
raw_input("PRESS ENTER TO RESUME")发布于 2015-10-06 22:41:49
您可以将代码放在一个函数中,然后调用它自己。
def run_prog():
name = Bob
try:
While True:
print "Whats your name?"
name = raw_input("Name:")
except KeyboardInterrupt:
print name
raw_input("PRESS ENTER TO RESUME")
run_prog()
run_prog()发布于 2015-10-06 22:43:59
当捕获异常时,无法真正返回到try块中的内容,因为try块中的整个堆栈将被删除。
在你的例子中,我要做的是:
name = None
while name is None:
try:
print "Whats your name?"
name = raw_input("Name:")
except KeyboardInterrupt:
raw_input("PRESS ENTER TO GO BACK TO NAME ENTRY")
print namehttps://stackoverflow.com/questions/32980916
复制相似问题