Python : 在循环中传递异常

Python : pass an exception in a loop

我坚持使用我的简单代码,我是编码新手..我正在使用 python 并且 在我的列表中,我有错误的值导致异常(httperror:404)。我想忽略这个异常并继续我的循环。但是在我的代码中,print("Http error") 一次又一次地循环。我不知道如何通过这个异常来再次循环整个代码。

while i < len(list_siret):   
    try : 
        data = api.siret(list_sirets[i]).get()
        str_datajs = json.dumps(data, indent= 4)
        a_json = json.loads(str_datajs)
        i +=1
        print("test1", i ,str_datajs)    
    except urllib.error.URLError : 
        print("Http error")
        pass
    

因为你在except块中有print("Http error"),每次异常发生时它都会被执行。

考虑下面更惯用的方法:

for siret in list_siret:
    try:
        data = api.siret(siret).get()
    except urllib.error.URLError:
        continue
    str_datajs = json.dumps(data, indent=4)
    a_json = json.loads(str_datajs)
    print("test1", i ,str_datajs)

我们直接迭代 list_siret 而无需对其进行索引并手动管理 i,而不是 pass 我们只是移动到列表中的下一个元素以防万一出现异常。