[Python-ideas] sentinel_exception argument to `iter`

Terry Reedy tjreedy at udel.edu
Fri Feb 7 09:41:57 CET 2014


On 2/7/2014 1:59 AM, Chris Angelico wrote:
> On Fri, Feb 7, 2014 at 5:52 PM, Andrew Barnert <abarnert at yahoo.com> wrote:
>> I'm actually not sure whether it's legal to use, say, 0 or "" as the except expression. In recent 3.4 builds, it seems to be accepted, and to never catch anything. So, if that's guaranteed by the language, it's just a simple typo to fix and your simplified implementation works perfectly.
>>
>
> In 3.4b2:
>
>>>> def f():
> raise StopIteration
>
>>>> try:
> f()
> except "":
> print("Blank exception caught")
>
> Traceback (most recent call last):
>    File "<pyshell#693>", line 2, in <module>
>      f()
>    File "<pyshell#691>", line 2, in f
>      raise StopIteration
> StopIteration
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>    File "<pyshell#693>", line 3, in <module>
>      except "":
> TypeError: catching classes that do not inherit from BaseException is
> not allowed
>
>
> It doesn't bomb until something gets raised. Is that changed in a
> newer build? (This is the newest I have on here.)

As of a week ago, no.



-- 
Terry Jan Reedy



More information about the Python-ideas mailing list