[Python-Dev] Exception chaining and generator finalisation (original) (raw)

Greg Ewing greg.ewing at canterbury.ac.nz
Sun Aug 1 09:45:31 CEST 2010


Antoine Pitrou wrote:

It only happens if you call close() explicitly:

Well, that's only because the exception is being ignored and you're not getting a traceback at all.

If you arrange to get a traceback, the same thing happens.

import traceback as tb

def g(): try: try: yield 1 finally: raise ValueError("Hovercraft contains eels") except Exception: tb.print_exc()

gi = g() next(gi) del gi

-- Greg

def g(): ... try: yield 1 ... finally: 1/0 ... gi = g() next(gi) 1 del gi Exception ZeroDivisionError: ZeroDivisionError('division by zero',) in <generator object g at 0x7fe50351ddc0> ignored gi = g() next(gi) 1 next(gi) Traceback (most recent call last): File "", line 1, in File "", line 3, in g ZeroDivisionError: division by zero Regards Antoine.


Python-Dev mailing list Python-Dev at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/greg.ewing%40canterbury.ac.nz



More information about the Python-Dev mailing list