24 assert(PyErr_Occurred());
37 PyErr_Fetch(&typ, &val, &tb);
38 PyObject* typs = PyObject_Str(typ);
39 PyObject* vals = PyObject_Str(val ? val : typ);
40 const char* typ_msg = PyUnicode_AsUTF8(typs);
41 const char* val_msg = PyUnicode_AsUTF8(vals);
42 PyErr_Restore(typ, val, tb);
44 std::string msg(typ_msg);
59 assert(PyErr_Occurred());
62 PyErrOccurred(
const std::string& msg) : std::runtime_error(msg)
64 assert(PyErr_Occurred());
68 : std::runtime_error(msg)
70 PyErr_SetString(exc_kind, msg);
74 : std::runtime_error(msg)
78 PyErr_SetString(exc_kind, msg.c_str());
82 const std::string msg,
86 PyObject* borrowed_obj_one, PyObject* borrowed_obj_two)
87 : std::runtime_error(msg)
97 PyErr_Format(exc_kind,
99 borrowed_obj_one, borrowed_obj_two);