Exceptions are the key mechanism for handling undesirable program
neet encounters a problem, it raises an exception of
some variety. Whenever possible, we have preferred to use builtin exception
classes, e.g. ValueError, IndexError, etc… For causes that aren’t really
covered by a builtin exception class, we’ve created subclasses of the standard
library’s Exception to report those errors.
At the current point, there is only one such exception class,