如何正确地继续潜在错误的for循环?

时间:2017-04-05 00:25:26

标签: python python-2.7 for-loop pycurl continue

我的PyCurl代码的目的是迭代一组IP地址,然后打印每个IP地址的响应主体。

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

我希望脚本执行的操作是,如果PyCurl无法连接到IP,请跳到下一个。这应该很简单,但我不确定如何重新编写代码以允许此异常。

Heres'我的代码:

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 个答案:

答案 0 :(得分: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