#!/usr/bin/python
def raisinggenfunc():
yield 1
raise ValueError("spurious error")
yield 3
def wrapper(gen):
while True:
try:
value = next(gen)
except StopIteration:
raise
except Exception as e:
print(e)
else:
yield value
def raiseon2(i):
if i == 2:
raise ValueError("spurious error")
return i
raisinggen = (raiseon2(i) for i in range(1, 4))
print(list(wrapper(raisinggenfunc())))
print(list(wrapper(raisinggen)))