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 "<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.nz
_______________________________________________
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/archive%40mail-archive.com