Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:

My plan is to deprecate PyDict_GetItem() and functions with same design flaw 
and finally remove them (in 4.0?).

We cannot start to ignore exceptions in PyDict_GetItem(). It would not fix the 
original flaw when the user code does not check an exception after using 
PyDict_GetItem(), and only make it worse. It can cause crashes in the code 
which asserts that the exception is not set (for example when function returns 
value and sets exception). And in worst case it will lead to incorrect results 
when PyErr_Occurred() is used after calling other C API function.

Emitting a DeprecationWarning only when PyDict_GetItem() is called with an 
exception raised does not make much sense, because the problem with 
PyDict_GetItem() is not only in this case. Also, there is a trick in using 
warnings here, you should use PyErr_WriteUnraisable(), so warnings always will 
be printed and cannot be turned into exceptions.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42006>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to