diff options
Diffstat (limited to 'cpp/src/Ice/Object.cpp')
-rw-r--r-- | cpp/src/Ice/Object.cpp | 36 |
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) |