2017-04-04 99 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:檢查編輯後的答案。 –