10.11 Exception Class Hierarchy and Custom Exceptions

  • Every exception is an object of a class in Python’s exception class hierarchy or an object of a class that inherits from one of those classes
  • Exception classes inherit directly or indirectly from base class BaseException and are defined in module exceptions
  • Four primary BaseException subclasses
    • SystemExit terminates program execution (or terminates an interactive session) and when uncaught does not produce a traceback like other exception types
    • KeyboardInterrupt exceptions occur when the user types the interrupt command—Ctrl + C) (or control + C) on most systems
    • GeneratorExit exceptions occur when a generator closes—normally when a generator finishes producing values or when its close method is called explicitly
    • Exception is the base class for most common exceptions you’ll encounter.

Catching Base-Class Exceptions

  • An except handler can catch exceptions of a particular type or can use a base-class type to catch those base-class exceptions and all related subclass exceptions

Custom Exception Classes

  • When you raise an exception from your code, you should generally use one of the existing exception classes from the Python Standard Library
  • Can create your own custom exception classes that derive directly or indirectly from class Exception
  • Before creating custom exception classes, look for an appropriate existing exception class in the Python exception hierarchy

©1992–2020 by Pearson Education, Inc. All Rights Reserved. This content is based on Chapter 5 of the book Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and the Cloud.

DISCLAIMER: The authors and publisher of this book have used their best efforts in preparing the book. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. The authors and publisher make no warranty of any kind, expressed or implied, with regard to these programs or to the documentation contained in these books. The authors and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs.