[Python-Dev] Pre-PEP: Exception Reorganization for Python 3.0 (original) (raw)
Robert Brewer fumanchu at amor.org
Sat Jul 30 05:07:45 CEST 2005
- Previous message: [Python-Dev] Pre-PEP: Exception Reorganization for Python 3.0
- Next message: [Python-Dev] Pre-PEP: Exception Reorganization for Python 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Brett Cannon wrote:
New Hierarchy =============
Raisable (new; rename BaseException?) +-- CriticalException (new) +-- KeyboardInterrupt +-- MemoryError +-- SystemExit +-- SystemError (subclass SystemExit?)
I'd recommend not subclassing SystemExit--there are too many programs out there which expect the argument (e.g. sys.exit(3)) to mean something specific, but that expectation doesn't apply at all to SystemError.
+-- Exception (replaces StandardError) ... +-- ControlFlowException (new)
I'd definitely appreciate ControlFlowException--there are a number of exceptions in CherryPy which should subclass from that. Um, CherryPy 3.0, that is. ;)
+-- LookupError (better name?)
SubscriptError, perhaps? But LookupError could become the "I didn't find obj X in the container you specified" superclass, in which case LookupError is perfect.
+-- TypeError +-- AttributeError (subclassing new)
"Since most attribute access errors can be attributed to an object not being the type that one expects, it makes sense for AttributeError to be considered a type error."
Very hmmm. I would have thought it would be a LookupError instead, only because I favor the duck-typing parts of Python. Making AttributeError subclass from TypeError leans toward stronger typing models a bit too much, IMO.
+-- WeakReferenceError (rename for ReferenceError)
This also has a LookupError feel to it.
It has been argued that Raisable is a bad name to use since it is not an actual word [python-dev1].
Perhaps, but compare http://www.onelook.com/?w=raisable to http://www.onelook.com/?w=raiseable. The only sources "raiseable" has going for it are Dictionary.com (which aggregates lots of questionable sources), Rhymezone, and LookWAYup. I think "raisable" is the clear winner.
Robert Brewer System Architect Amor Ministries fumanchu at amor.org
- Previous message: [Python-Dev] Pre-PEP: Exception Reorganization for Python 3.0
- Next message: [Python-Dev] Pre-PEP: Exception Reorganization for Python 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]