Check the return code for PyErr_Warn() when warning about raising string
exceptions. This was triggered when 'warnings' had a filter set to "error" that caught the string exception deprecation warning.
This commit is contained in:
parent
a7444f47b2
commit
a7446e3438
|
@ -12,6 +12,10 @@ What's New in Python 2.5 alpha 1?
|
|||
Core and builtins
|
||||
-----------------
|
||||
|
||||
- Properly check if 'warnings' raises an exception (usually when a filter set
|
||||
to "error" is triggered) when raising a warning for raising string
|
||||
exceptions.
|
||||
|
||||
- CO_GENERATOR_ALLOWED is no longer defined, this behavior is the default.
|
||||
The name was removed from Include/code.h.
|
||||
|
||||
|
|
|
@ -2997,13 +2997,14 @@ do_raise(PyObject *type, PyObject *value, PyObject *tb)
|
|||
Py_DECREF(tmp);
|
||||
}
|
||||
|
||||
if (PyString_CheckExact(type))
|
||||
if (PyString_CheckExact(type)) {
|
||||
/* Raising builtin string is deprecated but still allowed --
|
||||
* do nothing. Raising an instance of a new-style str
|
||||
* subclass is right out. */
|
||||
PyErr_Warn(PyExc_PendingDeprecationWarning,
|
||||
"raising a string exception is deprecated");
|
||||
|
||||
if (-1 == PyErr_Warn(PyExc_PendingDeprecationWarning,
|
||||
"raising a string exception is deprecated"))
|
||||
goto raise_error;
|
||||
}
|
||||
else if (PyClass_Check(type))
|
||||
PyErr_NormalizeException(&type, &value, &tb);
|
||||
|
||||
|
|
Loading…
Reference in New Issue