处理在生成器中抛出的异常
- 论坛
- 处理在生成器中抛出的异常
9 浏览
处理在生成器中抛出的异常
我有一个生成器和一个消耗它的函数:
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)
但我觉得这看起来很笨拙。