如何以pythonic方式停止try/except的for循环代码执行?

kra*_*r65 1 python loops structure break try-except

我有一些Python代码如下:

for emailCredentials in emailCredentialsList:
   try:
       if not emailCredentials.valid:
           emailCredentials.refresh()
   except EmailCredentialRefreshError as e:
       emailCredentials.active = False
       emailCredentials.save()
       # HERE I WANT TO STOP THIS ITERATION OF THE FOR LOOP 
       # SO THAT THE CODE BELOW THIS DOESN'T RUN ANYMORE. BUT HOW?

   # a lot more code here that scrapes the email box for interesting information
Run Code Online (Sandbox Code Playgroud)

正如我已经在代码中注释的那样,如果EmailCredentialRefreshError抛出,我希望for循环的这个迭代停止并移动到下一个项目emailCredentialsList.我不能使用a,break因为这将停止整个循环,它不会覆盖循环中的其他项目.我当然可以将所有代码包装在try/except中,但我希望将它们保持在一起以便代码保持可读性.

解决这个问题的最恐怖的方法是什么?

小智 5

尝试使用该continue声明.这将继续循环的下一次迭代.

for emailCredentials in emailCredentialsList:
   try:
       if not emailCredentials.valid:
           emailCredentials.refresh()
   except EmailCredentialRefreshError as e:
       emailCredentials.active = False
       emailCredentials.save()
       continue
   <more code>
Run Code Online (Sandbox Code Playgroud)