- New function sys.exc_clear() clears the current exception. This is
rarely needed, but can sometimes be useful to release objects
referenced by the traceback held in sys.exc_info()[2]. (SF patch
#693195.) Thanks to Kevin Jacobs!
diff --git a/Doc/lib/libsys.tex b/Doc/lib/libsys.tex
index 3f8f7b6..d027aa6 100644
--- a/Doc/lib/libsys.tex
+++ b/Doc/lib/libsys.tex
@@ -99,6 +99,11 @@
encapsulates the call stack at the point where the exception
originally occurred. \obindex{traceback}
+ If \function{exc_clear()} is called, this function will return three
+ \code{None} values until either another exception is raised in the
+ current thread or the execution stack returns to a frame where
+ another exception is being handled.
+
\warning{Assigning the \var{traceback} return value to a
local variable in a function that is handling an exception will
cause a circular reference. This will prevent anything referenced
@@ -115,6 +120,21 @@
efficient to avoid creating cycles.}
\end{funcdesc}
+\begin{funcdesc}{exc_clear}{}
+ This function clears all information relating to the current or last
+ exception that occured in the current thread. After calling this
+ function, \function{exc_info()} will return three \code{None} values until
+ another exception is raised in the current thread or the execution stack
+ returns to a frame where another exception is being handled.
+
+ This function is only needed in only a few obscure situations. These
+ include logging and error handling systems that report information on the
+ last or current exception. This function can also be used to try to free
+ resources and trigger object finalization, though no guarantee is made as
+ to what objects will be freed, if any.
+\versionadded{2.3}
+\end{funcdesc}
+
\begin{datadesc}{exc_type}
\dataline{exc_value}
\dataline{exc_traceback}