2017-04-05 57 views
-1

我的PyCurl代碼的目的是遍歷IP地址數組,然後打印每個IP地址的響應主體。我該如何正確地繼續出現潛在錯誤的for循環?

唯一的問題是,有些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 
+0

啊,這是總的感覺..非常感謝! – juiceb0xk