Python中try-except出错后如何从try出错地方继续执行?

发布于 2022-09-11 22:39:23 字数 1512 浏览 18 评论 0

题目描述

Python中try-except出错后如何从try出错地方继续执行?


try语句中有一个for循环,在某次循环中(假设i=99)出错了,except捕获到这个异常。

已有经验是,如果for循环包括了try-except(如下代码),那么将继续循环,但是是从i=100开始的,i=99被跳过了。
问题1:怎样让他重试一次i=99?

现在情况是,for循环只在try里面,报错打印错误信息后仍从start_point(=9222),我想让他继续从9472开始。简言之,如下题目来源及自己的思路中,第二个Page 9222 collecting如何变成Page 9472 collecting............
问题2:Page 9472失败后怎样重新从Page 9472继续?

题目来源及自己的思路

Page 9222 collecting............
..........(省略)...............
Page 9471 collecting............
Page 9472 collecting............
Current page failed: (省略)Failed to ···尝试失败···(省略)
Page 9222 collecting............
Page (省略)...................

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

try-except在for循环里面----------------

def mainfun(pages, path):
for n in range(2, pages + 1):
    try:
        append_csv(path, n)
        print("Page " + str(n) + " finished...")
    except Exception as err:
        print("Page " + str(n) + " failed: " + str(err))

for循环只在try里面---------------------
函数restarting(start_point)有一个for循环

start_point=9222
while start_point<1e7:
    try:
        restarting(start_point)
    except Exception as err:
        print("  Current page failed: " + str(err))

你期待的结果是什么?实际看到的错误信息又是什么?

我在while循环里的except中记录一下执行到的i=99那里(err_point=i),然后赋值给start_point,运行的时候就会报错err_point is not defined之类的,这又是什么原因呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷雾森÷林ヴ 2022-09-18 22:39:23

已经解决了,谢谢。
运行结果如图:

继续从出错的10562重试

扮仙女 2022-09-18 22:39:23

def pseudo_restarting(point):
    global start_point
    for i in range(point, 9473):
        start_point = i
        if i == 9472:
            raise Exception("9472")

start_point=9222
while start_point<1e7:
    try:
        pseudo_restarting(start_point)
    except Exception as err:
        print("  Current page failed: " + str(err))
瑶笙 2022-09-18 22:39:23

请问你是怎么做的呢 我卡在这里了 谢谢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文