mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
gh-102778: Add sys.last_exc, deprecate sys.last_type, sys.last_value,sys.last_traceback (#102779)
This commit is contained in:
parent
039714d00f
commit
e1e9bab006
22 changed files with 103 additions and 36 deletions
|
@ -1304,7 +1304,7 @@ finalize_modules_delete_special(PyThreadState *tstate, int verbose)
|
|||
{
|
||||
// List of names to clear in sys
|
||||
static const char * const sys_deletes[] = {
|
||||
"path", "argv", "ps1", "ps2",
|
||||
"path", "argv", "ps1", "ps2", "last_exc",
|
||||
"last_type", "last_value", "last_traceback",
|
||||
"__interactivehook__",
|
||||
// path_hooks and path_importer_cache are cleared
|
||||
|
|
|
@ -776,6 +776,10 @@ _PyErr_PrintEx(PyThreadState *tstate, int set_sys_last_vars)
|
|||
}
|
||||
|
||||
if (set_sys_last_vars) {
|
||||
if (_PySys_SetAttr(&_Py_ID(last_exc), exc) < 0) {
|
||||
_PyErr_Clear(tstate);
|
||||
}
|
||||
/* Legacy version: */
|
||||
if (_PySys_SetAttr(&_Py_ID(last_type), typ) < 0) {
|
||||
_PyErr_Clear(tstate);
|
||||
}
|
||||
|
|
|
@ -2670,11 +2670,13 @@ stderr -- standard error object; used for error messages\n\
|
|||
By assigning other file objects (or objects that behave like files)\n\
|
||||
to these, it is possible to redirect all of the interpreter's I/O.\n\
|
||||
\n\
|
||||
last_exc - the last uncaught exception\n\
|
||||
Only available in an interactive session after a\n\
|
||||
traceback has been printed.\n\
|
||||
last_type -- type of last uncaught exception\n\
|
||||
last_value -- value of last uncaught exception\n\
|
||||
last_traceback -- traceback of last uncaught exception\n\
|
||||
These three are only available in an interactive session after a\n\
|
||||
traceback has been printed.\n\
|
||||
These three are the (deprecated) legacy representation of last_exc.\n\
|
||||
"
|
||||
)
|
||||
/* concatenating string here */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue