From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 27 Feb 2019 23:45:57 +0000 (-0800) Subject: Document the surprising sideeffect PyErr_Print(). (GH-12081) X-Git-Tag: v2.7.17rc1~141 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a588343390356f5f7bb40e25371f0f2a092d6d72;p=thirdparty%2FPython%2Fcpython.git Document the surprising sideeffect PyErr_Print(). (GH-12081) Did you know an API documented as printing the pending traceback would sometimes exit the process? You do now. (cherry picked from commit 4173772031747a9b249be4100b4aa9eda805ea23) Co-authored-by: Gregory P. Smith --- diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst index db302d8ee0ca..281e4c8473fd 100644 --- a/Doc/c-api/exceptions.rst +++ b/Doc/c-api/exceptions.rst @@ -44,8 +44,12 @@ is a separate error indicator for each thread. .. c:function:: void PyErr_PrintEx(int set_sys_last_vars) Print a standard traceback to ``sys.stderr`` and clear the error indicator. - Call this function only when the error indicator is set. (Otherwise it will - cause a fatal error!) + **Unless** the error is a ``SystemExit``. In that case the no traceback + is printed and Python process will exit with the error code specified by + the ``SystemExit`` instance. + + Call this function **only** when the error indicator is set. Otherwise it + will cause a fatal error! If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`, :data:`sys.last_value` and :data:`sys.last_traceback` will be set to the