[Python-Dev] Python in Unicode context (original) (raw)
Paul Prescod paul at prescod.net
Thu Aug 5 04:32:30 CEST 2004
- Previous message: [Python-Dev] Python in Unicode context
- Next message: [Python-Dev] Python in Unicode context
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Greg Ewing wrote:
...
I don't really think that "raise 42" ought to be acceptable, but I don't know how to prevent it
Maybe we need to think more deeply about why it shouldn't be acceptable. If we can figure out exactly what the criterion should be, maybe we can think of a reasonable way of testing for it.
Exceptions naturally form a hierarchy. At the same time, inheritance of behaviour among exceptions is seldom necessary. Therefore, exceptions inherit from each other in order to build a classification system, not to share code. This is the opposite of the traditional reasons for classes inheriting from other classes in Python. This is why it seems "unpythonic" to require exceptions to be single-rooted.
But having a proper classification system is exactly what is required to allow robust, modular code that catches the right exceptions under the right circumstances and responds in the right way. So it is pythonic after all.
In a few senses the current model is unpythonic. There is no catch-all root so you have to use a "bare" except to catch every exception type. This makes it hard to introspect on the caught object. But introspection is the MOST IMPORTANT THING when you are catching all exceptions (because you should be logging the exception or something).
Paul Prescod
- Previous message: [Python-Dev] Python in Unicode context
- Next message: [Python-Dev] Python in Unicode context
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]