"Exception ... in <generator object ...> ignored" Messages
Peter Otten
__peter__ at web.de
Thu Feb 14 03:00:58 EST 2013
Ami Tavory wrote:
> Hi,
>
> Running the unit tests for some generator code, prints, as a side
> effect,
> numerous messages of the form:
>
> ...
> Exception NameError: "global name 'l' is not defined" in <generator object
> _dagpype_internal_fn_act at 0x9d4c500> ignored
> Exception AttributeError: "'NoneType' object has no attribute 'close'" in
> <generator object split at 0x7601640> ignored
> Exception AttributeError: "'NoneType' object has no attribute 'close'" in
> <generator object split at 0x7601690> ignored
> ...
>
> The tests otherwise run fine.
>
> Is there any way to catch the point where such a message originates, and
> print a traceback? I find it difficult to debug otherwise. I've tried
> running Python with -W error, catching warnings with context managers, and
> so forth, but without any success.
>>> def g():
... try:
... yield 42
... finally:
... 1/0
...
>>> for item in g():
... break
...
Exception ZeroDivisionError: 'integer division or modulo by zero' in
<generator object g at 0x7f990243b0f0> ignored
Can you exhaust the generator?
>>> for item in g():
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in g
ZeroDivisionError: integer division or modulo by zero
Explicitly closing the generator seems to work, too:
>>> x = g()
>>> next(x)
42
>>> x.close()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in g
ZeroDivisionError: integer division or modulo by zero
More information about the Python-list
mailing list