Python循环遇异常跳过当前剩余代码,继续下一次迭代的实现方法
解决方案
你需要把except块里的return换成continue,就能实现触发异常时跳过当前迭代剩余代码、直接进入下一次循环的需求。
为什么之前的语句没用:
return:会直接退出整个函数或脚本,根本不会继续循环break:会终止整个for循环,后续迭代都不会执行pass:执行完错误提示后,会继续运行循环体里的print(f"i = {i}"),达不到跳过的效果
修改后的代码:
for i in range(0,5): try: print(f"opened some_file_{i}") # 可添加异常测试代码:raise Exception("模拟打开失败") except Exception as e: print(f"error opening some_file_{i}") continue # 跳过当前迭代剩余代码,直接进入下一次循环 print(f"i = {i}")
触发异常时,continue会让程序直接跳到下一次循环的开头,不会执行后面的print(f"i = {i}");如果没有异常,就正常执行后续的打印语句。
内容的提问来源于stack exchange,提问作者Myrkytyn
相关产品推荐
相关产品推荐

