From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 15 Nov 2021 23:07:58 +0000 (-0800) Subject: bpo-25381: Update explanation of exceptions in C. (GH-26838) (GH-29569) X-Git-Tag: v3.9.10~128 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b0bdc093c2c15c352c5bede060117790705f5db0;p=thirdparty%2FPython%2Fcpython.git bpo-25381: Update explanation of exceptions in C. (GH-26838) (GH-29569) Co-authored-by: Terry Jan Reedy Co-authored-by: Serhiy Storchaka (cherry picked from commit ad43dc0b54994e7e7d06e3d4896ade188b36ee12) --- diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index bc85a05ff2f8..a7676708c8c8 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -127,13 +127,11 @@ Intermezzo: Errors and Exceptions An important convention throughout the Python interpreter is the following: when a function fails, it should set an exception condition and return an error value -(usually a ``NULL`` pointer). Exceptions are stored in a static global variable -inside the interpreter; if this variable is ``NULL`` no exception has occurred. A -second global variable stores the "associated value" of the exception (the -second argument to :keyword:`raise`). A third variable contains the stack -traceback in case the error originated in Python code. These three variables -are the C equivalents of the result in Python of :meth:`sys.exc_info` (see the -section on module :mod:`sys` in the Python Library Reference). It is important +(usually ``-1`` or a ``NULL`` pointer). Exception information is stored in +three members of the interpreter's thread state. These are ``NULL`` if +there is no exception. Otherwise they are the C equivalents of the members +of the Python tuple returned by :meth:`sys.exc_info`. These are the +exception type, exception instance, and a traceback object. It is important to know about them to understand how errors are passed around. The Python API defines a number of functions to set various types of exceptions. diff --git a/Misc/NEWS.d/next/Documentation/2021-06-21-17-51-51.bpo-25381.7Kn-_H.rst b/Misc/NEWS.d/next/Documentation/2021-06-21-17-51-51.bpo-25381.7Kn-_H.rst new file mode 100644 index 000000000000..f009f880e917 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-21-17-51-51.bpo-25381.7Kn-_H.rst @@ -0,0 +1,2 @@ +In the extending chapter of the extending doc, update a paragraph about the +global variables containing exception information.