Eric Snow <[email protected]> added the comment:
FTR, see PEP 490 ("Chain exceptions at C level") which proposed implicitly
chaining exceptions in the PyErr_* API.
While that PEP was rejected (not all exceptions should be chained), it does
make a good point about the clunkiness of using _PyErr_ChainExceptions():
PyObject *exc, *val, *tb;
PyErr_Fetch(&exc, &val, &tb);
PyErr_Format(ZipImportError, "can't open Zip file: %R", archive);
_PyErr_ChainExceptions(exc, val, tb);
So if we are going to add a public helper function, let's consider adding one
that simplifies usage. For instance, how about one that indicates the next
exception set should chain:
PyErr_ChainNext();
PyErr_Format(ZipImportError, "can't open Zip file: %R", archive);
Or perhaps we should revive PEP 490 with an opt out mechanism for the cases
where we don't want chaining:
PyErr_NoChainNext();
PyErr_Format(PyExc_RuntimeError, "uh-oh");
----------
nosy: +eric.snow, vstinner
versions: +Python 3.8 -Python 3.7
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue23188>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com