]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-101578: Fixup NEWS and add What's New entry for new exception APIs (#102157)
authorErlend E. Aasland <erlend.aasland@protonmail.com>
Thu, 23 Feb 2023 12:19:21 +0000 (13:19 +0100)
committerGitHub <noreply@github.com>
Thu, 23 Feb 2023 12:19:21 +0000 (13:19 +0100)
Doc/whatsnew/3.12.rst
Misc/NEWS.d/next/C API/2023-02-06-16-14-30.gh-issue-101578.PW5fA9.rst

index 909c9102a405f37f07181858703a34283493df13..e551c5b4fd06a9d9c6cd7eaeb56cd4cdc5793500 100644 (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
 -------
index fc694f6e051b538d9fd8898aa3edc16890a59796..27294a9e5179c48014c6e495951621e9f9c437f7 100644 (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.