gh-101578: Fixup NEWS and add What's New entry for new exception APIs (#102157)

This commit is contained in:
Erlend E. Aasland 2023-02-23 13:19:21 +01:00 committed by GitHub
parent 22b8d77b98
commit 5b9573eed4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 11 deletions

View File

@ -870,6 +870,19 @@ New Features
get a frame variable by its name.
(Contributed by Victor Stinner in :gh:`91248`.)
* Add :c:func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException`
for saving and restoring the current exception.
These functions return and accept a single exception object,
rather than the triple arguments of the now-deprecated
:c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore`.
This is less error prone and a bit more efficient.
(Contributed by Mark Shannon in :gh:`101578`.)
* Add :c:func:`PyException_GetArgs` and :c:func:`PyException_SetArgs`
as convenience functions for retrieving and modifying
the :attr:`~BaseException.args` passed to the exception's constructor.
(Contributed by Mark Shannon in :gh:`101578`.)
Porting to Python 3.12
----------------------
@ -993,6 +1006,11 @@ Deprecated
(Contributed in :gh:`47146` by Petr Viktorin, based on
earlier work by Alexander Belopolsky and Matthias Braun.)
* :c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` are deprecated.
Use :c:func:`PyErr_GetRaisedException` and
:c:func:`PyErr_SetRaisedException` instead.
(Contributed by Mark Shannon in :gh:`101578`.)
Removed
-------

View File

@ -1,13 +1,10 @@
Add new C-API functions for saving and restoring the current exception:
``PyErr_GetRaisedException`` and ``PyErr_SetRaisedException``.
These functions take and return a single exception rather than
the triple of ``PyErr_Fetch`` and ``PyErr_Restore``.
Add :c:func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException`
for saving and restoring the current exception.
These functions return and accept a single exception object,
rather than the triple arguments of the now-deprecated
:c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore`.
This is less error prone and a bit more efficient.
The three arguments forms of saving and restoring the
current exception: ``PyErr_Fetch`` and ``PyErr_Restore``
are deprecated.
Also add ``PyException_GetArgs`` and ``PyException_SetArgs``
as convenience functions to help dealing with
exceptions in the C API.
Add :c:func:`PyException_GetArgs` and :c:func:`PyException_SetArgs`
as convenience functions for retrieving and modifying
the :attr:`~BaseException.args` passed to the exception's constructor.