1
我需要捕獲由next(it)
引發的異常,所以在這種情況下我不能使用常規的for
循環。所以我寫了這樣的代碼:捕捉StopIteration時,爲什麼我不能跳出循環?
it = iter(xrange(5))
while True:
try:
num = it.next()
print(num)
except Exception as e:
print(e) # log and ignore
except StopIteration:
break
print('finished')
這是行不通的,數字用完後我得到一個無限循環。我究竟做錯了什麼?
當然,最好的答案不是抓住'Exception',而是隻抓住特定的。 –
總的來說,我當然同意,但在這種情況下,捕捉「例外」是正確的。 (我必須做大量的獨立計算,這需要幾天的時間,所以我只記錄哪些失敗;後來我可以修復造成這種錯誤並僅重新計算所需的錯誤)。 – Erik
公平的 - 總是有特定的這是正確的電話。 –