【发布时间】:2022-01-17 14:54:32
【问题描述】:
我遇到了这种情况:
datelist = pd.date_range(dateFrom, dateTo, dateperiods)
while i < len(datelist):
Date=datelist[i].floor('D')
print(f'{Date} STARTED')
if i!=0:
Date2=datelist[i-1].floor('D')
else:
Date2=Date
i = i + 1
try:
**COMPLEX AND LONG CODE THAT USE DATE AS A PARM**
except Exception as inst:
print(inst)
print(f'--------elaboration for {Date} failed. stated elaboration
for next date--------')
if i < len(datelist):
Date=datelist[i].floor('D')
print(f'--{Date} STARTED')
globalsdatelist.append(Date)
Date2=datelist[i-1].floor('D')
i = i + 1
else:
print('request failed')
break
**COMPLEX AND LONG CODE THAT USE DATE AS A PARM**
我想要的是继续 except while i
【问题讨论】:
-
将 try/except 放在循环内和 except 分支
continue。 PS:你的缩进看起来不对,你能确保代码在运行时缩进吗? -
不,这会简单地创建多个 while 循环。理想的方法是将循环放在外面,将 try except 放在循环里面,如果条件不正确就拦截异常并通过。
-
你好@GPhilo,我纠正了一点缩进。抱歉麻烦,这段代码是我两周的生命,当我闭上眼睛时,我的大脑只是“自动更正”了不清楚的缩进,再次抱歉。
-
你好@AnirudhPanchangam,我不明白你告诉我要尝试什么。我可以要求再说一遍吗?我编辑了一个更清晰的缩进,这有帮助吗
-
当然,正如您从下面的答案中看到的那样,您需要将 while 循环放在 try except 之外,因此您将仅在一个 while 组中迭代 datelist,并且任何while 循环中发生的异常会在 except 块中捕获,但由于没有 break ,因此在满足 while 循环条件之前,它永远不会退出 while 循环。
标签: python while-loop try-catch try-except