summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Object.cpp')
-rw-r--r--cpp/src/Ice/Object.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp
index 637fa0977ad..c7af240dcac 100644
--- a/cpp/src/Ice/Object.cpp
+++ b/cpp/src/Ice/Object.cpp
@@ -434,6 +434,24 @@ Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current)
async->__response();
}
},
+ [async](exception_ptr e)
+ {
+ if(e)
+ {
+ try
+ {
+ rethrow_exception(e);
+ }
+ catch(const exception& ex)
+ {
+ async->ice_exception(ex);
+ }
+ }
+ else
+ {
+ async->ice_exception();
+ }
+ },
current);
}
catch(const ::std::exception& ex)
@@ -491,6 +509,24 @@ Ice::BlobjectArrayAsync::__dispatch(Incoming& in, const Current& current)
async->__response();
}
},
+ [async](exception_ptr e)
+ {
+ if(e)
+ {
+ try
+ {
+ rethrow_exception(e);
+ }
+ catch(const exception& ex)
+ {
+ async->ice_exception(ex);
+ }
+ }
+ else
+ {
+ async->ice_exception();
+ }
+ },
current);
}
catch(const ::std::exception& ex)