[Python-checkins] cpython (merge 3.5 -> 3.6): Issue #28410: Keep the traceback of original exception in

serhiy.storchaka python-checkins at python.org
Fri Oct 21 09:21:34 EDT 2016


https://hg.python.org/cpython/rev/23a1d9ec35d5
changeset: 104606:23a1d9ec35d5
branch: 3.6
parent: 104603:1928074e6519
parent: 104605:81666d3e4a37
user: Serhiy Storchaka <storchaka at gmail.com>
date: Fri Oct 21 16:20:43 2016 +0300
summary:
 Issue #28410: Keep the traceback of original exception in _PyErr_ChainExceptions().
files:
 Python/errors.c | 5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/Python/errors.c b/Python/errors.c
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -387,8 +387,11 @@
 PyObject *exc2, *val2, *tb2;
 PyErr_Fetch(&exc2, &val2, &tb2);
 PyErr_NormalizeException(&exc, &val, &tb);
+ if (tb != NULL) {
+ PyException_SetTraceback(val, tb);
+ Py_DECREF(tb);
+ }
 Py_DECREF(exc);
- Py_XDECREF(tb);
 PyErr_NormalizeException(&exc2, &val2, &tb2);
 PyException_SetContext(val2, val);
 PyErr_Restore(exc2, val2, tb2);
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /