如何防止異常過早終止Python生成器/迭代器?防止終止Python迭代器的異常
例如,請考慮以下幾點:
#!/usr/bin/env python
def MyIter():
yield 1
yield 2
yield 3
raise Exception, 'blarg!'
yield 4 # this never happens
my_iter = MyIter()
while 1:
try:
value = my_iter.next()
print 'value:',value
except StopIteration:
break
except Exception, e:
print 'An error occurred: %s' % (e,)
我期望的輸出:
value: 1
value: 2
value: 3
An error occurred: blarg!
value: 4
然而,異常後,迭代終止和價值4從不屈服,即使我」我處理了這個異常,並沒有打破我的循環。它爲什麼這樣表現?
你應該使用'continue'? – heltonbiker 2013-04-26 19:58:36
例外的要點是過早地終止任何他們不是'除了'的上下文 – Eric 2013-04-26 20:07:09