try..except with empty exceptions

Cameron Simpson cs at zip.com.au
Sat Apr 11 17:37:34 EDT 2015


On 11Apr2015 21:21, Chris Angelico <rosuav at gmail.com> wrote:
>But I agree, it would be very nice if Python 3 could have abolished
>the truly confusing part of this, where "except:" catches everything.
>Forcing people to spell it "except BaseException:" would fix all of
>this. How hard is it to deprecate and then remove that, same as string
>exceptions were removed?

I guess I'll go over there to oppose it then.

Why? It makes it harder to write portable python 2/3 code and does not add any 
semantic advantage.

Unless there's a common root exception class in Python 2, which I believe there 
isn't, you can't catch all exceptions in python 2 without the "except:" syntax.  
Which means the _only_ way to have some code in both 2 and 3 that does it 
requires 2 codebases.

As one who tries to have his code run in both 2 (usually recent 2, like 
2.6/2.7) and 3, this change would cause a signification breakage for me without 
bringing any semantic benefits.

Without vigorous use of the time machine I don't see a fix here.

For the record, I would be ok (but not "for") never having had bare "except" if 
all exceptions had always had a common root.

Hmm. Can I catch "object"? Sounds awful, but might work.

Cheers,
Cameron Simpson <cs at zip.com.au>

EMACS: Escape Meta Alt Control Shift



More information about the Python-list mailing list