2017-04-04 109 views
1

我的PyCurl代码的目的是迭代IP地址数组,然后打印每个IP地址的响应主体。如何处理pycurl.error - 超时异常?

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

我想要的脚本是,如果PyCurl无法连接到IP,跳到下一个。这应该很简单,但我不知道如何重写我的代码以允许此异常。

继承人我的代码:

for x in range (0, 161): 

url = 'http://' + ips[x] + ':8080/version/' 

storage = StringIO() 
c = pycurl.Curl() 
c.setopt(c.URL, url) 
c.setopt(c.WRITEFUNCTION, storage.write) 
#c.perform errors and once it errors, I would like to increment x to skip to the next IP. 
c.perform() 
c.close() 
content = storage.getvalue() 
print content 

如上所述,c.perform错误,一旦出错,我想增加x跳到下一个IP。

我该如何做到这一点?

预先感谢您。

回答

1

perform增加pycurl.error例外失败。所以你需要在你的代码中处理它。

try: 
     #do stuff 
    except pycurl.error: 
     continue 
+0

太棒了,非常感谢。还有一个问题;我怎么能再次进入for循环,因为一旦我处理了错误,我无法弄清楚如何重新进入for循环,并从我的位置开始。 – juiceb0xk

+0

@ juiceb0xk:检查编辑后的答案。 –