summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Object.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-12-07 22:17:44 +0000
committerMarc Laukien <marc@zeroc.com>2002-12-07 22:17:44 +0000
commitbec87e9b6a7edcbbfce5fadb520c41816143a8be (patch)
treed428b8bf9306090d456b198c87d34e0dd048a5cb /cpp/src/Ice/Object.cpp
parentAMD exception cleanup (diff)
downloadice-bec87e9b6a7edcbbfce5fadb520c41816143a8be.tar.bz2
ice-bec87e9b6a7edcbbfce5fadb520c41816143a8be.tar.xz
ice-bec87e9b6a7edcbbfce5fadb520c41816143a8be.zip
more AMD exception fixes
Diffstat (limited to 'cpp/src/Ice/Object.cpp')
-rw-r--r--cpp/src/Ice/Object.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp
index 14a7e935296..ac3448c8b7a 100644
--- a/cpp/src/Ice/Object.cpp
+++ b/cpp/src/Ice/Object.cpp
@@ -437,6 +437,21 @@ Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current)
Int sz = in.is()->getReadEncapsSize();
in.is()->readBlob(inParams, sz);
AMD_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Object_ice_invoke(in);
- ice_invoke_async(cb, inParams, current);
+ try
+ {
+ ice_invoke_async(cb, inParams, current);
+ }
+ catch(const Exception& ex)
+ {
+ cb->ice_exception(ex);
+ }
+ catch(const ::std::exception& ex)
+ {
+ cb->ice_exception(ex);
+ }
+ catch(...)
+ {
+ cb->ice_exception();
+ }
return ::IceInternal::DispatchOK;
}