mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-11 16:13:53 +00:00
Merge branch 'master' into smart_holder
This commit is contained in:
commit
42c123f59d
@ -345,16 +345,17 @@ public:
|
||||
/// error variables (but the `.what()` string is still available).
|
||||
void restore() { PyErr_Restore(m_type.release().ptr(), m_value.release().ptr(), m_trace.release().ptr()); }
|
||||
|
||||
/// If it is impossible to raise the currently-held error, such as in destructor, we can write
|
||||
/// it out using Python's unraisable hook (sys.unraisablehook). The error context should be
|
||||
/// some object whose repr() helps identify the location of the error. Python already knows the
|
||||
/// type and value of the error, so there is no need to repeat that. For example, __func__ could
|
||||
/// be helpful. After this call, the current object no longer stores the error variables,
|
||||
/// and neither does Python.
|
||||
/// If it is impossible to raise the currently-held error, such as in a destructor, we can write
|
||||
/// it out using Python's unraisable hook (`sys.unraisablehook`). The error context should be
|
||||
/// some object whose `repr()` helps identify the location of the error. Python already knows the
|
||||
/// type and value of the error, so there is no need to repeat that. After this call, the current
|
||||
/// object no longer stores the error variables, and neither does Python.
|
||||
void discard_as_unraisable(object err_context) {
|
||||
restore();
|
||||
PyErr_WriteUnraisable(err_context.ptr());
|
||||
}
|
||||
/// An alternate version of `discard_as_unraisable()`, where a string provides information on the
|
||||
/// location of the error. For example, `__func__` could be helpful.
|
||||
void discard_as_unraisable(const char *err_context) {
|
||||
discard_as_unraisable(reinterpret_steal<object>(PYBIND11_FROM_STRING(err_context)));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user