|
|
|
@ -1708,12 +1708,16 @@ Changes in the Python API |
|
|
|
Changes in the C API |
|
|
|
-------------------- |
|
|
|
|
|
|
|
* :c:func:`PyObject_Str` now includes a debug assertion that ensures it will |
|
|
|
no longer silently discard currently active exceptions. In cases where |
|
|
|
* :c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr(), and |
|
|
|
:c:func:`PyObject_Str`, along with some other internal C APIs, now include |
|
|
|
a debugging assertion that ensures they are not used in situations where |
|
|
|
they may silently discard a currently active exception. In cases where |
|
|
|
discarding the active exception is expected and desired (for example, |
|
|
|
because it has already been saved locally with :c:func:`PyErr_Fetch`), an |
|
|
|
explicit :c:func:`PyErr_Clear` call will be needed to avoid triggering the |
|
|
|
assertion. |
|
|
|
because it has already been saved locally with :c:func:`PyErr_Fetch` or |
|
|
|
is being deliberately replaced with a different exception), an explicit |
|
|
|
:c:func:`PyErr_Clear` call will be needed to avoid triggering the |
|
|
|
assertion when running against a version of Python that is compiled with |
|
|
|
assertions enabled. |
|
|
|
|
|
|
|
* :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** |
|
|
|
argument is not set. Previously only ``NULL`` was returned with no exception |
|
|
|
|