Commit 6969e7c1 by Wenzel Jakob

exception handler tweaks (fixes #284)

parent d46b6eee
......@@ -104,18 +104,18 @@ PYBIND11_NOINLINE inline handle get_type_handle(const std::type_info &tp) {
}
PYBIND11_NOINLINE inline std::string error_string() {
std::string errorString;
PyThreadState *tstate = PyThreadState_GET();
if (tstate == nullptr)
return "";
PyObject *type, *value, *traceback;
PyErr_Fetch(&type, &value, &traceback);
if (tstate->curexc_type) {
errorString += (std::string) handle(tstate->curexc_type).str();
std::string errorString;
if (type) {
errorString += (std::string) handle(type).str();
errorString += ": ";
}
if (tstate->curexc_value)
errorString += (std::string) handle(tstate->curexc_value).str();
if (value)
errorString += (std::string) handle(value).str();
PyErr_Restore(type, value, traceback);
return errorString;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment