The Right Approach to Exceptions

bearophile bearophileHUGS at lycos.com
Sat Feb 18 17:07:29 PST 2012


H. S. Teoh:

> Error
>  +--Exception
>      +--GetOptException (bad name, I prefer CommandLineException)
>      |   +--FlagArgumentMissingException
>      |   +--InvalidFlagArgumentException
>      |   +--UnknownFlagException
>      +--FileException
>      |   +--FileNotFoundException
>      |   +--NotFileException
>      |   +--NotDirException
>      |   +--AccessDeniedException
>      +--IOException (OK, I added this branch, just to show the idea)
>          +--ReadErrorException
> 	 +--WriteErrorException


In Python 3.2 the class hierarchy for built-in exceptions is:

BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EnvironmentError
      |    +-- IOError
      |    +-- OSError
      |         +-- WindowsError (Windows)
      |         +-- VMSError (VMS)
      +-- EOFError
      +-- ImportError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning


Bye,
bearophile


More information about the Digitalmars-d mailing list