#
4.1 標準例外

"`PyExc_`"の後ろにPythonの例外名が続く名前をもつグローバル変数として、 すべての標準Python例外が利用可能です。これらは型`PyObject*`を 持ち、すべてクラスオブジェクトです。完璧を期するために、すべての変数を 以下に列挙します:

C名 | Python名 | 注記
--- | --- | ---
`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_ReferenceError` | `ReferenceError` | (2)
`PyExc_RuntimeError` | `RuntimeError` |
`PyExc_SyntaxError` | `SyntaxError` |
`PyExc_SystemError` | `SystemError` |
`PyExc_SystemExit` | `SystemExit` |
`PyExc_TypeError` | `TypeError` |
`PyExc_ValueError` | `ValueError` |
`PyExc_WindowsError` | `WindowsError` | (3)
`PyExc_ZeroDivisionError` | `ZeroDivisionError` |

注記:

(1)
  これは別の標準例外のためのベースクラスです。

(2)
  これは`weakref.ReferenceError`と同じです。

(3)
  Windowsでのみ定義されています。 プリプロセッサマクロ`MS_WINDOWS`が定義されているかテストすることで、 これを使うコードを保護してください。