diff options
Diffstat (limited to 'cpp/src/Glacier/Request.cpp')
-rw-r--r-- | cpp/src/Glacier/Request.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/cpp/src/Glacier/Request.cpp b/cpp/src/Glacier/Request.cpp index 221be673f2b..6167d4821c8 100644 --- a/cpp/src/Glacier/Request.cpp +++ b/cpp/src/Glacier/Request.cpp @@ -40,13 +40,20 @@ Glacier::Request::invoke() if(_proxy->ice_isTwoway()) { assert(_amiCB); - if(_forwardContext) + try { - _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams, _current.ctx); + if(_forwardContext) + { + _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams, _current.ctx); + } + else + { + _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams); + } } - else + catch(const Ice::Exception& ex) { - _proxy->ice_invoke_async(_amiCB, _current.operation, _current.mode, _inParams); + _amiCB->ice_exception(ex); } } else |