我使用函數f
創建生成器,但有時它可能會引發錯誤。我想兩件事情發生在主代碼蟒蛇嘗試,除了產量組合
- 的
for
環路主塊捕獲錯誤 - 在
except
後繼續,打印出生成錯誤(在現實中的索引中的差錯可能不會發生索引3)
代碼我想出了錯誤後提出停止。我應該如何執行前面提到的兩個功能?非常感謝。
def f(n):
for i in xrange(n):
if i == 3:
raise ValueError('hit 3')
yield i
if __name__ == '__main__':
a = enumerate(f(10))
try:
for i, x in a:
print i, x
except ValueError:
print 'you have a problem with index x'
如果在生成器內部引發異常,我看不到任何方法來恢復該生成器的執行,除非你在生成器內部捕獲異常。 – vaultah
目前還不清楚,如果你想繼續迭代器內的'for'或'main'中的'for' .... –
我想讓main塊中的'for'繼續。原文編輯。 – nos