diff options
Diffstat (limited to 'cpp/src/Ice/Proxy.cpp')
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 76 |
1 files changed, 64 insertions, 12 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index b902dedaad1..35ee8cae257 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -1354,16 +1354,29 @@ IceDelegateD::Ice::Object::ice_isA(const string& __id, const Context* context) { __direct.servant()->__collocDispatch(__direct); } + catch(const ::std::exception& __ex) + { + __direct.destroy(); + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } catch(...) { __direct.destroy(); - throw; + throw UnknownException(__FILE__, __LINE__, "unknown c++ exception"); } __direct.destroy(); } - catch(const LocalException& __ex) + catch(const LocalExceptionWrapper&) + { + throw; + } + catch(const ::std::exception& __ex) + { + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } + catch(...) { - throw LocalExceptionWrapper(__ex, false); + throw LocalExceptionWrapper(UnknownException(__FILE__, __LINE__, "unknown c++ exception"), false); } return __result; } @@ -1399,16 +1412,29 @@ IceDelegateD::Ice::Object::ice_ping(const ::Ice::Context* context) { __direct.servant()->__collocDispatch(__direct); } + catch(const ::std::exception& __ex) + { + __direct.destroy(); + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } catch(...) { __direct.destroy(); - throw; + throw UnknownException(__FILE__, __LINE__, "unknown c++ exception"); } __direct.destroy(); } - catch(const LocalException& __ex) + catch(const LocalExceptionWrapper&) + { + throw; + } + catch(const ::std::exception& __ex) + { + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } + catch(...) { - throw LocalExceptionWrapper(__ex, false); + throw LocalExceptionWrapper(UnknownException(__FILE__, __LINE__, "unknown c++ exception"), false); } } @@ -1449,16 +1475,29 @@ IceDelegateD::Ice::Object::ice_ids(const ::Ice::Context* context) { __direct.servant()->__collocDispatch(__direct); } + catch(const ::std::exception& __ex) + { + __direct.destroy(); + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } catch(...) { __direct.destroy(); - throw; + throw UnknownException(__FILE__, __LINE__, "unknown c++ exception"); } __direct.destroy(); } - catch(const LocalException& __ex) + catch(const LocalExceptionWrapper&) + { + throw; + } + catch(const ::std::exception& __ex) + { + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } + catch(...) { - throw LocalExceptionWrapper(__ex, false); + throw LocalExceptionWrapper(UnknownException(__FILE__, __LINE__, "unknown c++ exception"), false); } return __result; } @@ -1500,16 +1539,29 @@ IceDelegateD::Ice::Object::ice_id(const ::Ice::Context* context) { __direct.servant()->__collocDispatch(__direct); } + catch(const ::std::exception& __ex) + { + __direct.destroy(); + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } catch(...) { __direct.destroy(); - throw; + throw UnknownException(__FILE__, __LINE__, "unknown c++ exception"); } __direct.destroy(); } - catch(const LocalException& __ex) + catch(const LocalExceptionWrapper&) + { + throw; + } + catch(const ::std::exception& __ex) + { + LocalExceptionWrapper::throwUnknownWrapper(__ex); + } + catch(...) { - throw LocalExceptionWrapper(__ex, false); + throw LocalExceptionWrapper(UnknownException(__FILE__, __LINE__, "unknown c++ exception"), false); } return __result; } |