[ python-Bugs-905389 ] str.join() intercepts TypeError raised by
iterator
SourceForge.net
noreply at sourceforge.net
Thu Feb 26 19:58:28 EST 2004
Bugs item #905389, was opened at 2004-02-26 16:19
Message generated for change (Settings changed) made by rhettinger
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=905389&group_id=5470
Category: Python Library
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Lenard Lindstrom (kermode)
>Assigned to: Raymond Hettinger (rhettinger)
Summary: str.join() intercepts TypeError raised by iterator
Initial Comment:
For str.join(), if it is passed an iterator and that
iterator raises a TypeError, that exception is caught
by the join method and replaced by its own
TypeError exception. SyntaxError and IndexError
exceptions are uneffected.
Example:
Python 2.3.3 (#51, Dec 18 2003, 20:22:39) [MSC
v.1200 32 bit (Intel)] on win32
...
IDLE 1.0.2
>>> def gen(n):
if not isinstance(n, int):
raise TypeError, "gen() TypeError"
if n<0:
raise IndexError, "gen()
IndexError"
for i in range(n):
yield str(i)
>>> ''.join(gen(5))
'01234'
>>> ''.join(gen(-1))
Traceback (most recent call last):
File "<pyshell#9>", line 1, in -toplevel-
''.join(gen(-1))
File "<pyshell#7>", line 5, in gen
raise IndexError, "gen() IndexError"
IndexError: gen() IndexError
>>> ''.join(gen(None))
Traceback (most recent call last):
File "<pyshell#10>", line 1, in -toplevel-
''.join(gen(None))
TypeError: sequence expected, generator found
>>>
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=905389&group_id=5470
More information about the Python-bugs-list
mailing list