#
4.1 Standard Exceptions

All standard Python exceptions are available as global variables whose names are "`PyExc_`" followed by the Python exception name. These have the type `PyObject*`; they are all class objects. For completeness, here are all the variables:

C Name | Python Name | Notes
--- | --- | ---
PyExc_Exception | `Exception` | (1)
PyExc_StandardError | `StandardError` | (1)
PyExc_ArithmeticError | `ArithmeticError` | (1)
PyExc_LookupError | `LookupError` | (1)
PyExc_AssertionError | `AssertionError` |
PyExc_AttributeError | `AttributeError` |
PyExc_EOFError | `EOFError` |
PyExc_EnvironmentError | `EnvironmentError` | (1)
PyExc_FloatingPointError | `FloatingPointError` |
PyExc_IOError | `IOError` |
PyExc_ImportError | `ImportError` |
PyExc_IndexError | `IndexError` |
PyExc_KeyError | `KeyError` |
PyExc_KeyboardInterrupt | `KeyboardInterrupt` |
PyExc_MemoryError | `MemoryError` |
PyExc_NameError | `NameError` |
PyExc_NotImplementedError | `NotImplementedError` |
PyExc_OSError | `OSError` |
PyExc_OverflowError | `OverflowError` |
PyExc_RuntimeError | `RuntimeError` |
PyExc_SyntaxError | `SyntaxError` |
PyExc_SystemError | `SystemError` |
PyExc_SystemExit | `SystemExit` |
PyExc_TypeError | `TypeError` |
PyExc_ValueError | `ValueError` |
PyExc_WindowsError | `WindowsError` | (2)
PyExc_ZeroDivisionError | `ZeroDivisionError` |

Notes:

(1)
  This is a base class for other standard exceptions.

(2)
  Only defined on Windows; protect code that uses this by testing that the preprocessor macro `MS_WINDOWS` is defined.