[Python-Dev] Dangerous exceptions (was Re: Another test_compiler mystery) (original) (raw)
Jeremy Hylton jhylton at gmail.com
Mon Sep 6 03:42:44 CEST 2004
- Previous message: [Python-Dev] Re: Dangerous exceptions (was Re: Another test_compiler mystery)
- Next message: [Python-Dev] Re: Dangerous exceptions (was Re: Another test_compilermystery)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Sun, 5 Sep 2004 01:02:35 -0400, Tim Peters <tim.peters at gmail.com> wrote:
I would like to see Python's exception hierarchy grow more sophisticated in this respect. MemoryError, SystemExit, and KeyboardInterrupt are things that should not be caught by "except Exception:", neither by a bare "except:", nor by hasattr() or C-level dict lookup. ZODB's ConflictError is another of that ilk. I'd like to see "except Exception:" become synonymous with bare "except:", and move the "dangerous exceptions" to subclass off a new branch of the exception hierarchy. It could be that something like your patch is the only practical way to make this work in the C implementation, so I'm keen on it.
The current exception hierarchy isn't too far from what you suggest. We just got the names wrong. That is, there is a base class, StandardException, that captures most exceptions other than MemoryError, SystemError, and KeyboardInterrupt. If we renamed that Exception, then we'd be 90% of the way there. You could also change your code, right now, to say "except StandardError:" and avoid the problem entirely. Make sure ConflictError does not inherit from StandardError, of course. And make sure you're happy that ImportError is not a StandardError either.
I'm not sure what I think of the change to "except:" It's often the case that someone who has written "except:" really means "except Something:", but I expect that very often Something != StandardError and issubclass(Something, StandardError). In that case, the change doesn't really help them. The code is still wrong.
Jeremy
- Previous message: [Python-Dev] Re: Dangerous exceptions (was Re: Another test_compiler mystery)
- Next message: [Python-Dev] Re: Dangerous exceptions (was Re: Another test_compilermystery)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]