diff options
Diffstat (limited to 'cpp/src/slice2cpp/Gen.cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index f33a3e97844..161714d44a3 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -704,8 +704,14 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) C << eb; C << nl << "catch (const ::IceInternal::NonRepeatable& __ex)"; C << sb; -// C << nl << "__handleException(*__ex.get(), __cnt);"; - C << nl << "__ex.raise();"; + if (p->nonmutating()) + { + C << nl << "__handleException(*__ex.get(), __cnt);"; + } + else + { + C << nl << "__ex.raise();"; + } C << eb; C << nl << "catch (const ::Ice::LocalException& __ex)"; C << sb; |