diff options
Diffstat (limited to 'cpp/bindings/qpid/python/python.i')
-rw-r--r-- | cpp/bindings/qpid/python/python.i | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/cpp/bindings/qpid/python/python.i b/cpp/bindings/qpid/python/python.i index 85dc745783..bf61cb10b7 100644 --- a/cpp/bindings/qpid/python/python.i +++ b/cpp/bindings/qpid/python/python.i @@ -23,13 +23,16 @@ /* Define the general-purpose exception handling */ %exception { + std::string error; + Py_BEGIN_ALLOW_THREADS; try { - Py_BEGIN_ALLOW_THREADS $action - Py_END_ALLOW_THREADS + } catch (qpid::types::Exception& ex) { + error = ex.what(); } - catch (qpid::messaging::MessagingException& mex) { - PyErr_SetString(PyExc_RuntimeError, mex.what()); + Py_END_ALLOW_THREADS; + if (!error.empty()) { + PyErr_SetString(PyExc_RuntimeError, error.c_str()); return NULL; } } |