如何正确继续存在潜在错误的 for 循环? [复制]

Posted

技术标签:

【中文标题】如何正确继续存在潜在错误的 for 循环? [复制]【英文标题】:How do I properly continue a for loop with potential errors? [duplicate] 【发布时间】:2017-04-05 00:25:26 【问题描述】:

我的 PyCurl 代码的目的是遍历 IP 地址数组,然后打印每个 IP 地址的响应正文。

唯一的问题是,一些IP实际上是离线的,当PyCurl无法连接到IP时,它会出错并退出脚本。

我希望脚本做的是,如果 PyCurl 无法连接到 IP,则跳到下一个。这应该很简单,但我不确定我应该如何重写我的代码来允许这个异常。

这是我的代码:

try:
    for x in range (0, 161):
        print ips[x]
        url = 'http://' + ips[x] + ':8080/config/version/'

        storage = StringIO()
        c = pycurl.Curl()
        c.setopt(c.URL, url)
        c.setopt(c.WRITEFUNCTION, storage.write)
        c.perform()
        c.close()
        content = storage.getvalue()
        print content

except pycurl.error:
    pass

我尝试过continue,但收到错误continue: not properly in loop

如何编辑我的代码,以便在出现错误时可以正确地继续 for 循环?

【问题讨论】:

【参考方案1】:

你应该做的是将 try...except 块放在你的循环中,这样如果错误被捕获,它将继续到下一个循环。

for x in range (0, 161):
    try:
        print ips[x]
        url = 'http://' + ips[x] + ':8080/config/version/'

        storage = StringIO()
        c = pycurl.Curl()
        c.setopt(c.URL, url)
        c.setopt(c.WRITEFUNCTION, storage.write)
        c.perform()
        c.close()
        content = storage.getvalue()
        print content

    except pycurl.error:
        continue

【讨论】:

啊,这完全有道理.. 非常感谢!

以上是关于如何正确继续存在潜在错误的 for 循环? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Java - 在 for 循环中使用“继续”时出现未处理的异常错误?

For循环运行错误

如何检查文件是否不存在,并使用For循环显示一个整体响应

如何在从列表更新路径的for循环中读取多个json? [复制]

for 循环 querySelectorAll

在for循环输入错误后继续