【问题标题】:Is there an option to return after occuring error to the outest loop by try-except?是否有一个选项可以在发生错误后通过 try-except 返回到外部循环?
【发布时间】:2019-05-06 18:27:55
【问题描述】:

我的任务是在运行一百次后测量两个版本的代码之间的时间。程序在某一点实际中断。修复它是别人的任务。所以我已经做的是,我在 for 循环中从另一个脚本调用程序。但是在发生错误(FileNotFoundError)之后,我还没有找到返回外部循环的方法,让它再次运行。

我已经在发生错误的点之前放了一个 try 部分,但我不知道在 except 部分中放什么。当然,我可以在任何地方,在每个使用的函数中,放置一个“返回”以结束在外循环中。还有比这更简单的方法吗?

with open('bla-program.py') as f:
    script = f.read()
    z = np.arange(0, 100, 1)
    a = time.time()

for i in z:
    exec(script)  ### now, that's the point, I cannot reach again

b=time.time()
print(a, b, "difference", b-a)

\now 调用各种函数,计算一些东西,...跟随,登陆另一个由 bla-program 引导的文件,发生错误,如下所示

try:
    os.mkdir(os.path.join(bla.blabla, "bladibla.org"))
except FileNotFoundError:
    return  ###on this point, I want to return to the point displayed above

我想将程序运行一百次,而不是 FileNotFoundError 终止运行。

【问题讨论】:

    标签: python-3.x for-loop try-except


    【解决方案1】:

    你应该把try/except放在exec(script)周围:

    for i in z:
        try:
            exec(script)
        except:
            # Print an error message or whatever
    

    【讨论】:

    • 我已经这样做了,但是它不起作用,因为运行已经终止,它不能再返回了
    • 脚本中是否有对exit()quit() 的调用?如果没有,exec 应该总是返回给调用者。
    • 好的,我想,我已经试过了,但是出了点问题.. 我想现在可以了,谢谢 :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    相关资源
    最近更新 更多