[Python-Dev] PEP, take 2: Exception Reorganization for Python 3.0

Russell E. Owen rowen at cesmail.net
Wed Aug 3 22:35:24 CEST 2005


In article <bbaeab1005080217346b2af653 at mail.gmail.com>,
 Brett Cannon <bcannon at gmail.com> wrote:

> New Hierarchy
> =============
> 
> Exception
> +-- CriticalException (new)
>     +-- KeyboardInterrupt
>     +-- MemoryError
>     +-- SystemError
> +-- ControlFlowException (new)
>     +-- StopIteration
>     +-- GeneratorExit
>     +-- SystemExit
> +-- StandardError
>     +-- AssertionError
>     +-- SyntaxError
>         +-- IndentationError
>             +-- TabError
>     +-- UserException (rename of RuntimeError)
>     +-- ArithmeticError
>         +-- FloatingPointError
>         +-- DivideByZeroError
>         +-- OverflowError
>     +-- UnicodeError
>         +-- UnicodeDecodeError
>         +-- UnicodeEncodeError
>         +-- UnicodeTranslateError
>     +-- LookupError
>         +-- IndexError
>         +-- KeyError
>     +-- TypeError
>     +-- AttributeError
>     +-- EnvironmentError
> 	+-- OSError
> 	+-- IOError
> 	    +-- EOFError (new inheritance)
>     +-- ImportError
>     +-- NotImplementedError (new inheritance)
>     +-- NamespaceError (rename of NameError)
>         +-- UnboundGlobalError (new)
>         +-- UnboundLocalError
> 	+-- UnboundFreeError (new)
>     +-- WeakReferenceError (rename of ReferenceError)
>     +-- ValueError
> +-- Warning
>     +-- UserWarning
>     +-- AnyDeprecationWarning (new)
> 	+-- PendingDeprecationWarning 
>         +-- DeprecationWarning
>     +-- SyntaxWarning
>     +-- SemanticsWarning (rename of RuntimeWarning)
>     +-- FutureWarning

I am wondering why OSError and IOError are not under StandardError? This 
seems a serious misfeature to me (perhaps the posting was just 
misformatted?).

Having one class for "normal" errors (not exceptions whose sole purpose 
is to halt the program and not so critical that any continuation is 
hopeless) sure would make it easier to write code that output a 
traceback and tried to continue. I'd love it.

-- Russell



More information about the Python-Dev mailing list