summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2021-11-15 22:38:53 (GMT)
committerGitHub <noreply@github.com>2021-11-15 22:38:53 (GMT)
commitad43dc0b54994e7e7d06e3d4896ade188b36ee12 (patch)
tree56451eefc96cc3fbe0ff5f4d07570e173b359f70 /Doc
parentc750adbe6990ee8239b27d5f4591283a06bfe862 (diff)
downloadcpython-ad43dc0b54994e7e7d06e3d4896ade188b36ee12.zip
cpython-ad43dc0b54994e7e7d06e3d4896ade188b36ee12.tar.gz
cpython-ad43dc0b54994e7e7d06e3d4896ade188b36ee12.tar.bz2
bpo-25381: Update explanation of exceptions in C. (GH-26838)
* bpo-25381: Update explanation of exception globals This paragraph in extending/extending.rst was unchanged (except for NULL markup) since committed in 2007 Aug 15 for 2.6 alpha. * Respond to reviews and remove duplication. * Update Doc/extending/extending.rst Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Doc')
-rw-r--r--Doc/extending/extending.rst12
1 files changed, 5 insertions, 7 deletions
diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst
index 561d1c6..2e3362b 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.