#2358: add py3k warning to sys.exc_clear().

This commit is contained in:
Georg Brandl 2008-03-21 20:11:46 +00:00
parent 77354cf5ef
commit 5a44424c5e
3 changed files with 16 additions and 1 deletions

View File

@ -94,6 +94,11 @@ class TestPy3KWarnings(unittest.TestCase):
with catch_warning() as w:
self.assertWarning(sorted(lst, cmp), w, expected)
def test_sys_exc_clear(self):
expected = 'sys.exc_clear() not supported in 3.x. Use except clauses.'
with catch_warning() as w:
self.assertWarning(sys.exc_clear(), w, expected)
def test_main():
run_unittest(TestPy3KWarnings)

View File

@ -11,6 +11,8 @@ What's New in Python 2.6 alpha 2?
Core and builtins
-----------------
- Issue #2358: Add a Py3k warning on sys.exc_clear() usage.
- Issue #2400: Allow relative imports to "import *".

View File

@ -169,8 +169,16 @@ clause in the current stack frame or in an older stack frame."
static PyObject *
sys_exc_clear(PyObject *self, PyObject *noargs)
{
PyThreadState *tstate = PyThreadState_GET();
PyThreadState *tstate;
PyObject *tmp_type, *tmp_value, *tmp_tb;
if (Py_Py3kWarningFlag &&
PyErr_Warn(PyExc_DeprecationWarning,
"sys.exc_clear() not supported in 3.x. "
"Use except clauses.") < 0)
return NULL;
tstate = PyThreadState_GET();
tmp_type = tstate->exc_type;
tmp_value = tstate->exc_value;
tmp_tb = tstate->exc_traceback;