У меня есть генератор и функция, которая его потребляет:
def read():
while something():
yield something_else()
def process():
for item in read():
do stuff
Если генератор генерирует исключение, я хочу обработать это в функции пользователя, а затем продолжить использование итератора до его исчерпания. Обратите внимание, что я не хочу иметь код обработки исключений в генераторе.
Я подумал о чем-то вроде:
reader = read()
while True:
try:
item = next(reader)
except StopIteration:
break
except Exception as e:
log error
continue
do_stuff(item)
но это выглядит довольно неудобно для меня.