mirror of
https://github.com/python/cpython.git
synced 2025-12-09 02:35:14 +00:00
Issue #19235: Add new RecursionError exception. Patch by Georg Brandl.
This commit is contained in:
parent
27be130ec7
commit
f488fb422a
31 changed files with 101 additions and 69 deletions
|
|
@ -683,12 +683,12 @@ recursion depth automatically).
|
|||
sets a :exc:`MemoryError` and returns a nonzero value.
|
||||
|
||||
The function then checks if the recursion limit is reached. If this is the
|
||||
case, a :exc:`RuntimeError` is set and a nonzero value is returned.
|
||||
case, a :exc:`RecursionError` is set and a nonzero value is returned.
|
||||
Otherwise, zero is returned.
|
||||
|
||||
*where* should be a string such as ``" in instance check"`` to be
|
||||
concatenated to the :exc:`RuntimeError` message caused by the recursion depth
|
||||
limit.
|
||||
concatenated to the :exc:`RecursionError` message caused by the recursion
|
||||
depth limit.
|
||||
|
||||
.. c:function:: void Py_LeaveRecursiveCall()
|
||||
|
||||
|
|
@ -800,6 +800,8 @@ the variables:
|
|||
+-----------------------------------------+---------------------------------+----------+
|
||||
| :c:data:`PyExc_ProcessLookupError` | :exc:`ProcessLookupError` | |
|
||||
+-----------------------------------------+---------------------------------+----------+
|
||||
| :c:data:`PyExc_RecursionError` | :exc:`RecursionError` | |
|
||||
+-----------------------------------------+---------------------------------+----------+
|
||||
| :c:data:`PyExc_ReferenceError` | :exc:`ReferenceError` | \(2) |
|
||||
+-----------------------------------------+---------------------------------+----------+
|
||||
| :c:data:`PyExc_RuntimeError` | :exc:`RuntimeError` | |
|
||||
|
|
@ -829,6 +831,9 @@ the variables:
|
|||
:c:data:`PyExc_PermissionError`, :c:data:`PyExc_ProcessLookupError`
|
||||
and :c:data:`PyExc_TimeoutError` were introduced following :pep:`3151`.
|
||||
|
||||
.. versionadded:: 3.5
|
||||
:c:data:`PyExc_RecursionError`.
|
||||
|
||||
|
||||
These are compatibility aliases to :c:data:`PyExc_OSError`:
|
||||
|
||||
|
|
@ -877,6 +882,7 @@ These are compatibility aliases to :c:data:`PyExc_OSError`:
|
|||
single: PyExc_OverflowError
|
||||
single: PyExc_PermissionError
|
||||
single: PyExc_ProcessLookupError
|
||||
single: PyExc_RecursionError
|
||||
single: PyExc_ReferenceError
|
||||
single: PyExc_RuntimeError
|
||||
single: PyExc_SyntaxError
|
||||
|
|
|
|||
|
|
@ -282,6 +282,16 @@ The following exceptions are the exceptions that are usually raised.
|
|||
handling in C, most floating point operations are not checked.
|
||||
|
||||
|
||||
.. exception:: RecursionError
|
||||
|
||||
This exception is derived from :exc:`RuntimeError`. It is raised when the
|
||||
interpreter detects that the maximum recursion depth (see
|
||||
:func:`sys.getrecursionlimit`) is exceeded.
|
||||
|
||||
.. versionadded:: 3.5
|
||||
Previously, a plain :exc:`RuntimeError` was raised.
|
||||
|
||||
|
||||
.. exception:: ReferenceError
|
||||
|
||||
This exception is raised when a weak reference proxy, created by the
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ The following types can be pickled:
|
|||
Attempts to pickle unpicklable objects will raise the :exc:`PicklingError`
|
||||
exception; when this happens, an unspecified number of bytes may have already
|
||||
been written to the underlying file. Trying to pickle a highly recursive data
|
||||
structure may exceed the maximum recursion depth, a :exc:`RuntimeError` will be
|
||||
structure may exceed the maximum recursion depth, a :exc:`RecursionError` will be
|
||||
raised in this case. You can carefully raise this limit with
|
||||
:func:`sys.setrecursionlimit`.
|
||||
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ New built-in features:
|
|||
* Generators have new ``gi_yieldfrom`` attribute, which returns the
|
||||
object being iterated by ``yield from`` expressions. (Contributed
|
||||
by Benno Leslie and Yury Selivanov in :issue:`24450`.)
|
||||
* New :exc:`RecursionError` exception. (Contributed by Georg Brandl
|
||||
in :issue:`19235`.)
|
||||
|
||||
Implementation improvements:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue