| 123456789101112131415161718192021222324252627282930 |
- def gen():
- try:
- yield 1
- except ValueError:
- print("got ValueError from upstream!")
- yield "str1"
- raise TypeError
- def gen2():
- print((yield from gen()))
- g = gen2()
- print(next(g))
- print(g.throw(ValueError))
- try:
- print(next(g))
- except TypeError:
- print("got TypeError from downstream!")
- # case where generator doesn't intercept the thrown/injected exception
- def gen3():
- yield 123
- yield 456
-
- g3 = gen3()
- print(next(g3))
- try:
- g3.throw(StopIteration)
- except StopIteration:
- print('got StopIteration from downstream!')
|