[Python-ideas] Revised**12 PEP on Yield-From
Jacob Holm
jh at improva.dk
Thu Apr 23 12:34:48 CEST 2009
Hi Erik
Erik Groeneveld wrote:
> There is one problem left however. The code dealing with
> GeneratorExit has to undo the work of close() a bit. To account for:
>
> "If this call results in an exception, it is propagated to the delegating
> generator. Otherwise, GeneratorExit is raised in the delegating
> generator."
>
> and knowing that close() raises a RuntimeError when a generator
> ignores GeneratorExit, I have:
>
> try:
> generator.close()
> except RuntimeError:
> pass
> raise GeneratorExit
>
> But this code cannot tell if the generator intended to raise a
> RuntimeError.
Why do you think you can't just do:
generator.close()
raise GeneratorExit
instead?
This does excatly what the quote says, and if you look at the expansion
in the PEP that is exactly how it is defined there.
HTH
-Jacob
More information about the Python-ideas
mailing list