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
ignored gi = g() next(gi)
1
next(gi)
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in g ZeroDivisionError: division by zero
Regards
Antoine.
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/greg.ewing%40canterbury.ac...