FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

gh-101578: Amend PyErr_{Set,Get}RaisedException docs by erlend-aasland · Pull Request #101962 · python/cpython · GitHub

/ cpython Public
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .dat  (1) .rst  (1) All 2 file types selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
49 changes: 17 additions & 32 deletions Doc/c-api/exceptions.rst
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -402,51 +402,36 @@ Querying the error indicator

.. c:function:: PyObject *PyErr_GetRaisedException(void)

Returns the exception currently being raised, clearing the exception at
the same time. Do not confuse this with the exception currently being
handled which can be accessed with :c:func:`PyErr_GetHandledException`.
Return the exception currently being raised, clearing the error indicator at
the same time.

.. note::
This function is used by code that needs to catch exceptions,
or code that needs to save and restore the error indicator temporarily.

This function is normally only used by code that needs to catch exceptions or
by code that needs to save and restore the error indicator temporarily, e.g.::
For example::

{
PyObject *exc = PyErr_GetRaisedException();
{
PyObject *exc = PyErr_GetRaisedException();

/* ... code that might produce other errors ... */
/* ... code that might produce other errors ... */

PyErr_SetRaisedException(exc);
}
PyErr_SetRaisedException(exc);
}

.. seealso:: :c:func:`PyErr_GetHandledException`,
to save the exception currently being handled.

.. versionadded:: 3.12


.. c:function:: void PyErr_SetRaisedException(PyObject *exc)

Sets the exception currently being raised ``exc``.
If the exception is already set, it is cleared first.

``exc`` must be a valid exception.
(Violating this rules will cause subtle problems later.)
This call consumes a reference to the ``exc`` object: you must own a
reference to that object before the call and after the call you no longer own
that reference.
(If you don't understand this, don't use this function. I warned you.)
Set *exc* as the exception currently being raised,
clearing the existing exception if one is set.

.. note::

This function is normally only used by code that needs to save and restore the
error indicator temporarily. Use :c:func:`PyErr_GetRaisedException` to save
the current exception, e.g.::

{
PyObject *exc = PyErr_GetRaisedException();

/* ... code that might produce other errors ... */
.. warning::

PyErr_SetRaisedException(exc);
}
This call steals a reference to *exc*, which must be a valid exception.

.. versionadded:: 3.12

Expand Down
3 changes: 3 additions & 0 deletions Doc/data/refcounts.dat
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,9 @@ PyErr_GetExcInfo:PyObject**:ptype:+1:
PyErr_GetExcInfo:PyObject**:pvalue:+1:
PyErr_GetExcInfo:PyObject**:ptraceback:+1:

PyErr_GetRaisedException:PyObject*::+1:
PyErr_SetRaisedException::::

PyErr_GivenExceptionMatches:int:::
PyErr_GivenExceptionMatches:PyObject*:given:0:
PyErr_GivenExceptionMatches:PyObject*:exc:0:
Expand Down

Back | FazBrowse Home | New Git URL