summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/python/python.i
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/bindings/qpid/python/python.i')
-rw-r--r--cpp/bindings/qpid/python/python.i11
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;
}
}