如何防止异常过早终止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