def gen(): yield 1 yield 2 raise ValueError def gen2(): try: print((yield from gen())) except ValueError: print("caught ValueError from downstream") g = gen2() print(list(g))