Skip to main content
 首页 » 编程设计

python之如何以 Pythonic 方式停止 try/except 中 for 循环的代码执行

2025年05月04日34三少

我有一些 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 

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

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

请您参考如下方法:

尝试使用 continue 语句。这将继续到循环的下一次迭代。

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