summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/IncomingAsync.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-08-31 12:11:40 +0000
committerMark Spruiell <mes@zeroc.com>2004-08-31 12:11:40 +0000
commit8dfd998c9f5f96db0de7f3d73227d6599c3724d3 (patch)
tree15482caed436112f8a28f77258c7bf0db8f7e28c /cpp/src/Ice/IncomingAsync.cpp
parentminor fix (diff)
downloadice-8dfd998c9f5f96db0de7f3d73227d6599c3724d3.tar.bz2
ice-8dfd998c9f5f96db0de7f3d73227d6599c3724d3.tar.xz
ice-8dfd998c9f5f96db0de7f3d73227d6599c3724d3.zip
catch UnknownExceptions explicitly
Diffstat (limited to 'cpp/src/Ice/IncomingAsync.cpp')
-rw-r--r--cpp/src/Ice/IncomingAsync.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/cpp/src/Ice/IncomingAsync.cpp b/cpp/src/Ice/IncomingAsync.cpp
index 996dbd3c1c2..5c049a1753d 100644
--- a/cpp/src/Ice/IncomingAsync.cpp
+++ b/cpp/src/Ice/IncomingAsync.cpp
@@ -133,6 +133,51 @@ IceInternal::IncomingAsync::__exception(const Exception& exc)
_os.write(ex.operation);
}
}
+ catch(const UnknownLocalException& ex)
+ {
+ if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ {
+ __warning(ex);
+ }
+
+ if(_response)
+ {
+ _os.endWriteEncaps();
+ _os.b.resize(headerSize + 4); // Dispatch status position.
+ _os.write(static_cast<Byte>(DispatchUnknownLocalException));
+ _os.write(ex.unknown);
+ }
+ }
+ catch(const UnknownUserException& ex)
+ {
+ if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ {
+ __warning(ex);
+ }
+
+ if(_response)
+ {
+ _os.endWriteEncaps();
+ _os.b.resize(headerSize + 4); // Dispatch status position.
+ _os.write(static_cast<Byte>(DispatchUnknownUserException));
+ _os.write(ex.unknown);
+ }
+ }
+ catch(const UnknownException& ex)
+ {
+ if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)
+ {
+ __warning(ex);
+ }
+
+ if(_response)
+ {
+ _os.endWriteEncaps();
+ _os.b.resize(headerSize + 4); // Dispatch status position.
+ _os.write(static_cast<Byte>(DispatchUnknownException));
+ _os.write(ex.unknown);
+ }
+ }
catch(const LocalException& ex)
{
if(_os.instance()->properties()->getPropertyAsIntWithDefault("Ice.Warn.Dispatch", 1) > 0)