On 2/7/2014 1:59 AM, Chris Angelico wrote:
On Fri, Feb 7, 2014 at 5:52 PM, Andrew Barnert <abarnert@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