summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp/Gen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/slice2cpp/Gen.cpp')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp10
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;