首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常后恢复python程序?

异常后恢复python程序?
EN

Stack Overflow用户
提问于 2015-10-06 22:35:17
回答 4查看 2.4K关注 0票数 1

好吧,假设我有这样的代码:

代码语言:javascript
复制
name = Bob
try:
    While True:
        print "Whats your name?"
        name = raw_input("Name:")

except KeyboardInterrupt:
    print name
    raw_input("PRESS ENTER TO RESUME")

如果我按下CTRL键而不是输入,它就会关闭程序。我怎么能有这个节目的简历?我对线程没有意见,但我从来没有任何运气与他们合作。这将用于另一个更大的程序,该代码只是虚拟代码。我想要的可能吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-06 22:39:19

程序终止是因为它到达了终点。这与键盘中断无关。你可以通过.恢复程序的执行。将一些代码放在该块下面,或者将代码块包含在一个循环中。

代码语言:javascript
复制
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")
票数 1
EN

Stack Overflow用户

发布于 2015-10-06 22:41:49

您可以将代码放在一个函数中,然后调用它自己。

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2015-10-06 22:43:59

当捕获异常时,无法真正返回到try块中的内容,因为try块中的整个堆栈将被删除。

在你的例子中,我要做的是:

代码语言:javascript
复制
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 name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32980916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档