[英]Catch Exception in for Loop Python
我有以下for循環:
for batch in loader:
# do something with batch
...
從加載程序中提取批次時,我的循環有時會失敗。 我想做的是類似於下面的代碼片段,但我希望能夠在下一個值上繼續循環,而不是跳過值的 rest。
error_idxs = []
try:
for i,batch in enumerate(loader):
# do something with batch
...
except:
error_idxs.append(i)
上述方法的問題在於,一旦發生異常,它就會退出循環,而不是繼續下一批。
有沒有辦法在下一批繼續循環?
error_idxs = []
i = 0
while True:
try:
batch = next(loader)
# do something
except StopIteration:
break
except Exception:
error_idxs.append(i)
finally:
i += 1
編輯:將StopIteration
StopIterationError
刪除continue
您可以改用 while 循環。
在這里,它將在循環內提取,因此可以在循環內捕獲異常並處理並繼續休息!
error_idxs = []
i = -1
while i < len(loader) -1:
try:
i = i + 1
batch = loader[i]
do something witth batch
...
except:
error_idxs.append(i)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.