@@ -525,7 +525,7 @@ recursion depth automatically).
525525
526526 Marks a point where a recursive C-level call is about to be performed.
527527
528- If :const: `USE_STACKCHECK ` is defined, this function checks if the the OS
528+ If :const: `USE_STACKCHECK ` is defined, this function checks if the OS
529529 stack overflowed using :c:func: `PyOS_CheckStack `. In this is the case, it
530530 sets a :exc: `MemoryError ` and returns a nonzero value.
531531
@@ -582,65 +582,116 @@ All standard Python exceptions are available as global variables whose names are
582582:c:type: `PyObject\* `; they are all class objects. For completeness, here are all
583583the variables:
584584
585- +-------------------------------------+----------------------------+----------+
586- | C Name | Python Name | Notes |
587- +=====================================+============================+==========+
588- | :c:data: `PyExc_BaseException ` | :exc: `BaseException ` | \( 1) |
589- +-------------------------------------+----------------------------+----------+
590- | :c:data: `PyExc_Exception ` | :exc: `Exception ` | \( 1) |
591- +-------------------------------------+----------------------------+----------+
592- | :c:data: `PyExc_ArithmeticError ` | :exc: `ArithmeticError ` | \( 1) |
593- +-------------------------------------+----------------------------+----------+
594- | :c:data: `PyExc_LookupError ` | :exc: `LookupError ` | \( 1) |
595- +-------------------------------------+----------------------------+----------+
596- | :c:data: `PyExc_AssertionError ` | :exc: `AssertionError ` | |
597- +-------------------------------------+----------------------------+----------+
598- | :c:data: `PyExc_AttributeError ` | :exc: `AttributeError ` | |
599- +-------------------------------------+----------------------------+----------+
600- | :c:data: `PyExc_EOFError ` | :exc: `EOFError ` | |
601- +-------------------------------------+----------------------------+----------+
602- | :c:data: `PyExc_EnvironmentError ` | :exc: `EnvironmentError ` | \( 1) |
603- +-------------------------------------+----------------------------+----------+
604- | :c:data: `PyExc_FloatingPointError ` | :exc: `FloatingPointError ` | |
605- +-------------------------------------+----------------------------+----------+
606- | :c:data: `PyExc_IOError ` | :exc: `IOError ` | |
607- +-------------------------------------+----------------------------+----------+
608- | :c:data: `PyExc_ImportError ` | :exc: `ImportError ` | |
609- +-------------------------------------+----------------------------+----------+
610- | :c:data: `PyExc_IndexError ` | :exc: `IndexError ` | |
611- +-------------------------------------+----------------------------+----------+
612- | :c:data: `PyExc_KeyError ` | :exc: `KeyError ` | |
613- +-------------------------------------+----------------------------+----------+
614- | :c:data: `PyExc_KeyboardInterrupt ` | :exc: `KeyboardInterrupt ` | |
615- +-------------------------------------+----------------------------+----------+
616- | :c:data: `PyExc_MemoryError ` | :exc: `MemoryError ` | |
617- +-------------------------------------+----------------------------+----------+
618- | :c:data: `PyExc_NameError ` | :exc: `NameError ` | |
619- +-------------------------------------+----------------------------+----------+
620- | :c:data: `PyExc_NotImplementedError ` | :exc: `NotImplementedError ` | |
621- +-------------------------------------+----------------------------+----------+
622- | :c:data: `PyExc_OSError ` | :exc: `OSError ` | |
623- +-------------------------------------+----------------------------+----------+
624- | :c:data: `PyExc_OverflowError ` | :exc: `OverflowError ` | |
625- +-------------------------------------+----------------------------+----------+
626- | :c:data: `PyExc_ReferenceError ` | :exc: `ReferenceError ` | \( 2) |
627- +-------------------------------------+----------------------------+----------+
628- | :c:data: `PyExc_RuntimeError ` | :exc: `RuntimeError ` | |
629- +-------------------------------------+----------------------------+----------+
630- | :c:data: `PyExc_SyntaxError ` | :exc: `SyntaxError ` | |
631- +-------------------------------------+----------------------------+----------+
632- | :c:data: `PyExc_SystemError ` | :exc: `SystemError ` | |
633- +-------------------------------------+----------------------------+----------+
634- | :c:data: `PyExc_SystemExit ` | :exc: `SystemExit ` | |
635- +-------------------------------------+----------------------------+----------+
636- | :c:data: `PyExc_TypeError ` | :exc: `TypeError ` | |
637- +-------------------------------------+----------------------------+----------+
638- | :c:data: `PyExc_ValueError ` | :exc: `ValueError ` | |
639- +-------------------------------------+----------------------------+----------+
640- | :c:data: `PyExc_WindowsError ` | :exc: `WindowsError ` | \( 3) |
641- +-------------------------------------+----------------------------+----------+
642- | :c:data: `PyExc_ZeroDivisionError ` | :exc: `ZeroDivisionError ` | |
643- +-------------------------------------+----------------------------+----------+
585+ +-----------------------------------------+---------------------------------+----------+
586+ | C Name | Python Name | Notes |
587+ +=========================================+=================================+==========+
588+ | :c:data: `PyExc_BaseException ` | :exc: `BaseException ` | \( 1) |
589+ +-----------------------------------------+---------------------------------+----------+
590+ | :c:data: `PyExc_Exception ` | :exc: `Exception ` | \( 1) |
591+ +-----------------------------------------+---------------------------------+----------+
592+ | :c:data: `PyExc_ArithmeticError ` | :exc: `ArithmeticError ` | \( 1) |
593+ +-----------------------------------------+---------------------------------+----------+
594+ | :c:data: `PyExc_LookupError ` | :exc: `LookupError ` | \( 1) |
595+ +-----------------------------------------+---------------------------------+----------+
596+ | :c:data: `PyExc_AssertionError ` | :exc: `AssertionError ` | |
597+ +-----------------------------------------+---------------------------------+----------+
598+ | :c:data: `PyExc_AttributeError ` | :exc: `AttributeError ` | |
599+ +-----------------------------------------+---------------------------------+----------+
600+ | :c:data: `PyExc_BlockingIOError ` | :exc: `BlockingIOError ` | |
601+ +-----------------------------------------+---------------------------------+----------+
602+ | :c:data: `PyExc_BrokenPipeError ` | :exc: `BrokenPipeError ` | |
603+ +-----------------------------------------+---------------------------------+----------+
604+ | :c:data: `PyExc_ChildProcessError ` | :exc: `ChildProcessError ` | |
605+ +-----------------------------------------+---------------------------------+----------+
606+ | :c:data: `PyExc_ConnectionError ` | :exc: `ConnectionError ` | |
607+ +-----------------------------------------+---------------------------------+----------+
608+ | :c:data: `PyExc_ConnectionAbortedError ` | :exc: `ConnectionAbortedError ` | |
609+ +-----------------------------------------+---------------------------------+----------+
610+ | :c:data: `PyExc_ConnectionRefusedError ` | :exc: `ConnectionRefusedError ` | |
611+ +-----------------------------------------+---------------------------------+----------+
612+ | :c:data: `PyExc_ConnectionResetError ` | :exc: `ConnectionResetError ` | |
613+ +-----------------------------------------+---------------------------------+----------+
614+ | :c:data: `PyExc_FileExistsError ` | :exc: `FileExistsError ` | |
615+ +-----------------------------------------+---------------------------------+----------+
616+ | :c:data: `PyExc_FileNotFoundError ` | :exc: `FileNotFoundError ` | |
617+ +-----------------------------------------+---------------------------------+----------+
618+ | :c:data: `PyExc_EOFError ` | :exc: `EOFError ` | |
619+ +-----------------------------------------+---------------------------------+----------+
620+ | :c:data: `PyExc_FloatingPointError ` | :exc: `FloatingPointError ` | |
621+ +-----------------------------------------+---------------------------------+----------+
622+ | :c:data: `PyExc_ImportError ` | :exc: `ImportError ` | |
623+ +-----------------------------------------+---------------------------------+----------+
624+ | :c:data: `PyExc_IndexError ` | :exc: `IndexError ` | |
625+ +-----------------------------------------+---------------------------------+----------+
626+ | :c:data: `PyExc_InterruptedError ` | :exc: `InterruptedError ` | |
627+ +-----------------------------------------+---------------------------------+----------+
628+ | :c:data: `PyExc_IsADirectoryError ` | :exc: `IsADirectoryError ` | |
629+ +-----------------------------------------+---------------------------------+----------+
630+ | :c:data: `PyExc_KeyError ` | :exc: `KeyError ` | |
631+ +-----------------------------------------+---------------------------------+----------+
632+ | :c:data: `PyExc_KeyboardInterrupt ` | :exc: `KeyboardInterrupt ` | |
633+ +-----------------------------------------+---------------------------------+----------+
634+ | :c:data: `PyExc_MemoryError ` | :exc: `MemoryError ` | |
635+ +-----------------------------------------+---------------------------------+----------+
636+ | :c:data: `PyExc_NameError ` | :exc: `NameError ` | |
637+ +-----------------------------------------+---------------------------------+----------+
638+ | :c:data: `PyExc_NotADirectoryError ` | :exc: `NotADirectoryError ` | |
639+ +-----------------------------------------+---------------------------------+----------+
640+ | :c:data: `PyExc_NotImplementedError ` | :exc: `NotImplementedError ` | |
641+ +-----------------------------------------+---------------------------------+----------+
642+ | :c:data: `PyExc_OSError ` | :exc: `OSError ` | \( 1) |
643+ +-----------------------------------------+---------------------------------+----------+
644+ | :c:data: `PyExc_OverflowError ` | :exc: `OverflowError ` | |
645+ +-----------------------------------------+---------------------------------+----------+
646+ | :c:data: `PyExc_PermissionError ` | :exc: `PermissionError ` | |
647+ +-----------------------------------------+---------------------------------+----------+
648+ | :c:data: `PyExc_ProcessLookupError ` | :exc: `ProcessLookupError ` | |
649+ +-----------------------------------------+---------------------------------+----------+
650+ | :c:data: `PyExc_ReferenceError ` | :exc: `ReferenceError ` | \( 2) |
651+ +-----------------------------------------+---------------------------------+----------+
652+ | :c:data: `PyExc_RuntimeError ` | :exc: `RuntimeError ` | |
653+ +-----------------------------------------+---------------------------------+----------+
654+ | :c:data: `PyExc_SyntaxError ` | :exc: `SyntaxError ` | |
655+ +-----------------------------------------+---------------------------------+----------+
656+ | :c:data: `PyExc_SystemError ` | :exc: `SystemError ` | |
657+ +-----------------------------------------+---------------------------------+----------+
658+ | :c:data: `PyExc_TimeoutError ` | :exc: `TimeoutError ` | |
659+ +-----------------------------------------+---------------------------------+----------+
660+ | :c:data: `PyExc_SystemExit ` | :exc: `SystemExit ` | |
661+ +-----------------------------------------+---------------------------------+----------+
662+ | :c:data: `PyExc_TypeError ` | :exc: `TypeError ` | |
663+ +-----------------------------------------+---------------------------------+----------+
664+ | :c:data: `PyExc_ValueError ` | :exc: `ValueError ` | |
665+ +-----------------------------------------+---------------------------------+----------+
666+ | :c:data: `PyExc_ZeroDivisionError ` | :exc: `ZeroDivisionError ` | |
667+ +-----------------------------------------+---------------------------------+----------+
668+
669+ .. versionadded :: 3.3
670+ :c:data: `PyExc_BlockingIOError `, :c:data: `PyExc_BrokenPipeError `,
671+ :c:data: `PyExc_ChildProcessError `, :c:data: `PyExc_ConnectionError `,
672+ :c:data: `PyExc_ConnectionAbortedError `, :c:data: `PyExc_ConnectionRefusedError `,
673+ :c:data: `PyExc_ConnectionResetError `, :c:data: `PyExc_FileExistsError `,
674+ :c:data: `PyExc_FileNotFoundError `, :c:data: `PyExc_InterruptedError `,
675+ :c:data: `PyExc_IsADirectoryError `, :c:data: `PyExc_NotADirectoryError `,
676+ :c:data: `PyExc_PermissionError `, :c:data: `PyExc_ProcessLookupError `
677+ and :c:data: `PyExc_TimeoutError ` were introduced following :pep: `3151 `.
678+
679+
680+ These are compatibility aliases to :c:data: `PyExc_OSError `:
681+
682+ +-------------------------------------+----------+
683+ | C Name | Notes |
684+ +=====================================+==========+
685+ | :c:data: `PyExc_EnvironmentError ` | |
686+ +-------------------------------------+----------+
687+ | :c:data: `PyExc_IOError ` | |
688+ +-------------------------------------+----------+
689+ | :c:data: `PyExc_WindowsError ` | \( 3) |
690+ +-------------------------------------+----------+
691+
692+ .. versionchanged :: 3.3
693+ These aliases used to be separate exception types.
694+
644695
645696.. index ::
646697 single: PyExc_BaseException
@@ -649,28 +700,42 @@ the variables:
649700 single: PyExc_LookupError
650701 single: PyExc_AssertionError
651702 single: PyExc_AttributeError
703+ single: PyExc_BlockingIOError
704+ single: PyExc_BrokenPipeError
705+ single: PyExc_ConnectionError
706+ single: PyExc_ConnectionAbortedError
707+ single: PyExc_ConnectionRefusedError
708+ single: PyExc_ConnectionResetError
652709 single: PyExc_EOFError
653- single: PyExc_EnvironmentError
710+ single: PyExc_FileExistsError
711+ single: PyExc_FileNotFoundError
654712 single: PyExc_FloatingPointError
655- single: PyExc_IOError
656713 single: PyExc_ImportError
657714 single: PyExc_IndexError
715+ single: PyExc_InterruptedError
716+ single: PyExc_IsADirectoryError
658717 single: PyExc_KeyError
659718 single: PyExc_KeyboardInterrupt
660719 single: PyExc_MemoryError
661720 single: PyExc_NameError
721+ single: PyExc_NotADirectoryError
662722 single: PyExc_NotImplementedError
663723 single: PyExc_OSError
664724 single: PyExc_OverflowError
725+ single: PyExc_PermissionError
726+ single: PyExc_ProcessLookupError
665727 single: PyExc_ReferenceError
666728 single: PyExc_RuntimeError
667729 single: PyExc_SyntaxError
668730 single: PyExc_SystemError
669731 single: PyExc_SystemExit
732+ single: PyExc_TimeoutError
670733 single: PyExc_TypeError
671734 single: PyExc_ValueError
672- single: PyExc_WindowsError
673735 single: PyExc_ZeroDivisionError
736+ single: PyExc_EnvironmentError
737+ single: PyExc_IOError
738+ single: PyExc_WindowsError
674739
675740Notes:
676741
0 commit comments