diff options
author | Marc Laukien <marc@zeroc.com> | 2001-10-10 21:56:32 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-10-10 21:56:32 +0000 |
commit | 8bc95821a3163f119f5e44ff7d6510cde734ea4b (patch) | |
tree | 3e6b89c017bce15ec8c81db9931ec46aecb897c8 /cpp | |
parent | more fixes (diff) | |
download | ice-8bc95821a3163f119f5e44ff7d6510cde734ea4b.tar.bz2 ice-8bc95821a3163f119f5e44ff7d6510cde734ea4b.tar.xz ice-8bc95821a3163f119f5e44ff7d6510cde734ea4b.zip |
more exception stuff
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/demo/Freeze/phonebook/Parser.cpp | 36 | ||||
-rw-r--r-- | cpp/include/Ice/LocalException.h | 224 | ||||
-rw-r--r-- | cpp/include/IceUtil/Exception.h | 42 | ||||
-rw-r--r-- | cpp/include/IceUtil/Handle.h | 13 | ||||
-rw-r--r-- | cpp/src/Ice/Emitter.cpp | 20 | ||||
-rw-r--r-- | cpp/src/Ice/LocalException.cpp | 473 | ||||
-rw-r--r-- | cpp/src/Ice/Outgoing.cpp | 8 | ||||
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 6 | ||||
-rw-r--r-- | cpp/src/IcePack/Parser.cpp | 16 |
9 files changed, 542 insertions, 296 deletions
diff --git a/cpp/demo/Freeze/phonebook/Parser.cpp b/cpp/demo/Freeze/phonebook/Parser.cpp index 1296bf6949b..b4a6ba24a3f 100644 --- a/cpp/demo/Freeze/phonebook/Parser.cpp +++ b/cpp/demo/Freeze/phonebook/Parser.cpp @@ -73,7 +73,9 @@ Parser::addContacts(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -99,7 +101,9 @@ Parser::findContacts(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -136,7 +140,9 @@ Parser::printCurrent() } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -167,7 +173,9 @@ Parser::setCurrentName(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -198,7 +206,9 @@ Parser::setCurrentAddress(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -229,7 +239,9 @@ Parser::setCurrentPhone(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -254,7 +266,9 @@ Parser::removeCurrent() } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -277,7 +291,9 @@ Parser::setEvictorSize(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -294,7 +310,9 @@ Parser::shutdown() } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } diff --git a/cpp/include/Ice/LocalException.h b/cpp/include/Ice/LocalException.h index 57bdb7514af..bc2ba978f0b 100644 --- a/cpp/include/Ice/LocalException.h +++ b/cpp/include/Ice/LocalException.h @@ -26,9 +26,10 @@ public: UnknownException(const char*, int); UnknownException(const UnknownException&); UnknownException& operator=(const UnknownException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API UnknownUserException : public LocalException @@ -38,9 +39,10 @@ public: UnknownUserException(const char*, int); UnknownUserException(const UnknownUserException&); UnknownUserException& operator=(const UnknownUserException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API VersionMismatchException : public LocalException @@ -50,9 +52,10 @@ public: VersionMismatchException(const char*, int); VersionMismatchException(const VersionMismatchException&); VersionMismatchException& operator=(const VersionMismatchException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API CommunicatorDestroyedException : public LocalException @@ -62,9 +65,10 @@ public: CommunicatorDestroyedException(const char*, int); CommunicatorDestroyedException(const CommunicatorDestroyedException&); CommunicatorDestroyedException& operator=(const CommunicatorDestroyedException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ObjectAdapterDeactivatedException : public LocalException @@ -74,9 +78,10 @@ public: ObjectAdapterDeactivatedException(const char*, int); ObjectAdapterDeactivatedException(const ObjectAdapterDeactivatedException&); ObjectAdapterDeactivatedException& operator=(const ObjectAdapterDeactivatedException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API NoEndpointException : public LocalException @@ -86,9 +91,10 @@ public: NoEndpointException(const char*, int); NoEndpointException(const NoEndpointException&); NoEndpointException& operator=(const NoEndpointException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API EndpointParseException : public LocalException @@ -98,9 +104,10 @@ public: EndpointParseException(const char*, int); EndpointParseException(const EndpointParseException&); EndpointParseException& operator=(const EndpointParseException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ReferenceParseException : public LocalException @@ -110,9 +117,10 @@ public: ReferenceParseException(const char*, int); ReferenceParseException(const ReferenceParseException&); ReferenceParseException& operator=(const ReferenceParseException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ReferenceIdentityException : public LocalException @@ -122,9 +130,10 @@ public: ReferenceIdentityException(const char*, int); ReferenceIdentityException(const ReferenceIdentityException&); ReferenceIdentityException& operator=(const ReferenceIdentityException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ObjectNotExistException : public LocalException @@ -134,9 +143,10 @@ public: ObjectNotExistException(const char*, int); ObjectNotExistException(const ObjectNotExistException&); ObjectNotExistException& operator=(const ObjectNotExistException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API OperationNotExistException : public LocalException @@ -146,9 +156,10 @@ public: OperationNotExistException(const char*, int); OperationNotExistException(const OperationNotExistException&); OperationNotExistException& operator=(const OperationNotExistException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API NoServantFactoryException : public LocalException @@ -158,9 +169,10 @@ public: NoServantFactoryException(const char*, int); NoServantFactoryException(const NoServantFactoryException&); NoServantFactoryException& operator=(const NoServantFactoryException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API SystemException : public LocalException @@ -170,9 +182,10 @@ public: SystemException(const char*, int); SystemException(const SystemException&); SystemException& operator=(const SystemException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; protected: @@ -186,9 +199,10 @@ public: SocketException(const char*, int); SocketException(const SocketException&); SocketException& operator=(const SocketException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API TimeoutException : public SocketException @@ -198,9 +212,10 @@ public: TimeoutException(const char*, int); TimeoutException(const TimeoutException&); TimeoutException& operator=(const TimeoutException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ConnectTimeoutException : public TimeoutException @@ -210,9 +225,10 @@ public: ConnectTimeoutException(const char*, int); ConnectTimeoutException(const ConnectTimeoutException&); ConnectTimeoutException& operator=(const ConnectTimeoutException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ConnectFailedException : public SocketException @@ -222,9 +238,10 @@ public: ConnectFailedException(const char*, int); ConnectFailedException(const ConnectFailedException&); ConnectFailedException& operator=(const ConnectFailedException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ConnectionLostException : public SocketException @@ -234,9 +251,10 @@ public: ConnectionLostException(const char*, int); ConnectionLostException(const ConnectionLostException&); ConnectionLostException& operator=(const ConnectionLostException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API DNSException : public SystemException @@ -246,9 +264,10 @@ public: DNSException(const char*, int); DNSException(const DNSException&); DNSException& operator=(const DNSException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ProtocolException : public LocalException @@ -268,9 +287,10 @@ public: UnmarshalOutOfBoundsException(const UnmarshalOutOfBoundsException&); UnmarshalOutOfBoundsException& operator=( const UnmarshalOutOfBoundsException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API ServantUnmarshalException : public ProtocolException @@ -280,9 +300,10 @@ public: ServantUnmarshalException(const char*, int); ServantUnmarshalException(const ServantUnmarshalException&); ServantUnmarshalException& operator=(const ServantUnmarshalException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API StringEncodingException : public ProtocolException @@ -292,9 +313,10 @@ public: StringEncodingException(const char*, int); StringEncodingException(const StringEncodingException&); StringEncodingException& operator=(const StringEncodingException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API MemoryLimitException : public ProtocolException @@ -304,9 +326,10 @@ public: MemoryLimitException(const char*, int); MemoryLimitException(const MemoryLimitException&); MemoryLimitException& operator=(const MemoryLimitException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API EncapsulationException : public ProtocolException @@ -316,9 +339,10 @@ public: EncapsulationException(const char*, int); EncapsulationException(const EncapsulationException&); EncapsulationException& operator=(const EncapsulationException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API UnsupportedProtocolException : public ProtocolException @@ -328,9 +352,10 @@ public: UnsupportedProtocolException(const char*, int); UnsupportedProtocolException(const UnsupportedProtocolException&); UnsupportedProtocolException& operator=(const UnsupportedProtocolException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API UnsupportedEncodingException : public ProtocolException @@ -340,9 +365,10 @@ public: UnsupportedEncodingException(const char*, int); UnsupportedEncodingException(const UnsupportedEncodingException&); UnsupportedEncodingException& operator=(const UnsupportedEncodingException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API InvalidMessageException : public ProtocolException @@ -352,9 +378,10 @@ public: InvalidMessageException(const char*, int); InvalidMessageException(const InvalidMessageException&); InvalidMessageException& operator=(const InvalidMessageException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API UnknownMessageException : public ProtocolException @@ -364,9 +391,10 @@ public: UnknownMessageException(const char*, int); UnknownMessageException(const UnknownMessageException&); UnknownMessageException& operator=(const UnknownMessageException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API UnknownRequestIdException : public ProtocolException @@ -376,9 +404,10 @@ public: UnknownRequestIdException(const char*, int); UnknownRequestIdException(const UnknownRequestIdException&); UnknownRequestIdException& operator=(const UnknownRequestIdException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API UnknownReplyStatusException : public ProtocolException @@ -388,9 +417,10 @@ public: UnknownReplyStatusException(const char*, int); UnknownReplyStatusException(const UnknownReplyStatusException&); UnknownReplyStatusException& operator=(const UnknownReplyStatusException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API CloseConnectionException : public ProtocolException @@ -400,9 +430,10 @@ public: CloseConnectionException(const char*, int); CloseConnectionException(const CloseConnectionException&); CloseConnectionException& operator=(const CloseConnectionException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; class ICE_API AbortBatchRequestException : public ProtocolException @@ -412,9 +443,10 @@ public: AbortBatchRequestException(const char*, int); AbortBatchRequestException(const AbortBatchRequestException&); AbortBatchRequestException& operator=(const AbortBatchRequestException&); - virtual std::string toString() const; - virtual LocalException* clone() const; - virtual void raise() const; + virtual std::string _name() const; + virtual std::string _description() const; + virtual LocalException* _clone() const; + virtual void _throw() const; }; } diff --git a/cpp/include/IceUtil/Exception.h b/cpp/include/IceUtil/Exception.h index 74a57044479..d21f6269577 100644 --- a/cpp/include/IceUtil/Exception.h +++ b/cpp/include/IceUtil/Exception.h @@ -20,6 +20,12 @@ class Exception { public: + Exception() : + _file(0), + _line(0) + { + } + Exception(const char* file, int line) : _file(file), _line(line) @@ -40,49 +46,49 @@ public: { if (this != &ex) { - _line = ex._line; _file = ex._file; + _line = ex._line; } return *this; } - virtual std::string toString() const + virtual std::string _name() const { - return debugInfo() + "unknown Ice exception"; + return "IceUtil::Exception"; } - virtual Exception* clone() const + virtual std::string _description() const { - return new Exception(*this); + return "unknown Ice exception"; } - virtual void raise() const + virtual Exception* _clone() const { - throw *this; + return new Exception(*this); } - -protected: - - std::string debugInfo() const + virtual void _throw() const { - std::ostringstream s; - s << _file << ':' << _line << ": "; - return s.str(); + throw *this; } - + private: - + const char* _file; int _line; + friend std::ostream& operator<<(std::ostream&, const Exception&); }; inline std::ostream& operator<<(std::ostream& out, const Exception& ex) { - std::string s = ex.toString(); - return out << s; + if (ex._file && ex._line > 0) + { + out << ex._file << ':' << ex._line << ": "; + } + out << ex._name() << ": " << ex._description(); + return out; } } diff --git a/cpp/include/IceUtil/Handle.h b/cpp/include/IceUtil/Handle.h index 27f35ef1f8f..799eb673d36 100644 --- a/cpp/include/IceUtil/Handle.h +++ b/cpp/include/IceUtil/Handle.h @@ -41,17 +41,22 @@ public: return *this; } - virtual std::string toString() const + virtual std::string _name() const { - return debugInfo() + "operation call on null handle"; + return "IceUtil::NullHandleException"; } - virtual NullHandleException* clone() const + virtual std::string _description() const + { + return "operation call on null handle"; + } + + virtual NullHandleException* _clone() const { return new NullHandleException(*this); } - virtual void raise() const + virtual void _throw() const { throw *this; } diff --git a/cpp/src/Ice/Emitter.cpp b/cpp/src/Ice/Emitter.cpp index 709f2dc56e1..a05da9429b6 100644 --- a/cpp/src/Ice/Emitter.cpp +++ b/cpp/src/Ice/Emitter.cpp @@ -64,7 +64,7 @@ IceInternal::Emitter::sendRequest(Outgoing* out, bool oneway) if (_exception.get()) { - _exception->raise(); + _exception->_throw(); } assert(_state == StateActive); @@ -99,7 +99,7 @@ IceInternal::Emitter::sendRequest(Outgoing* out, bool oneway) catch(const LocalException& ex) { setState(StateClosed, ex); - ex.raise(); + ex._throw(); } // @@ -120,7 +120,7 @@ IceInternal::Emitter::prepareBatchRequest(Outgoing* out) if (_exception.get()) { unlock(); - _exception->raise(); + _exception->_throw(); } assert(_state == StateActive); @@ -150,7 +150,7 @@ IceInternal::Emitter::finishBatchRequest(Outgoing* out) if (_exception.get()) { unlock(); - _exception->raise(); + _exception->_throw(); } assert(_state == StateActive); @@ -172,7 +172,7 @@ IceInternal::Emitter::flushBatchRequest() if (_exception.get()) { - _exception->raise(); + _exception->_throw(); } assert(_state == StateActive); @@ -206,7 +206,7 @@ IceInternal::Emitter::flushBatchRequest() catch(const LocalException& ex) { setState(StateClosed, ex); - ex.raise(); + ex._throw(); } } @@ -405,7 +405,7 @@ IceInternal::Emitter::setState(State state, const LocalException& ex) if (!_exception.get()) { - _exception = auto_ptr<LocalException>(ex.clone()); + _exception = auto_ptr<LocalException>(ex._clone()); } for (std::map< ::Ice::Int, Outgoing*>::iterator p = _requests.begin(); p != _requests.end(); ++p) @@ -487,11 +487,11 @@ IceInternal::EmitterFactory::create(const vector<EndpointPtr>& endpoints) } catch (const SocketException& ex) { - exception = auto_ptr<LocalException>(ex.clone()); + exception = auto_ptr<LocalException>(ex._clone()); } catch (const DNSException& ex) { - exception = auto_ptr<LocalException>(ex.clone()); + exception = auto_ptr<LocalException>(ex._clone()); } ++q; @@ -516,7 +516,7 @@ IceInternal::EmitterFactory::create(const vector<EndpointPtr>& endpoints) if (!emitter) { assert(exception.get()); - exception -> raise(); + exception->_throw(); } return emitter; diff --git a/cpp/src/Ice/LocalException.cpp b/cpp/src/Ice/LocalException.cpp index b6f53a0b5ba..e14a36df156 100644 --- a/cpp/src/Ice/LocalException.cpp +++ b/cpp/src/Ice/LocalException.cpp @@ -33,20 +33,25 @@ Ice::UnknownException::operator=(const UnknownException& ex) } string -Ice::UnknownException::toString() const +Ice::UnknownException::_name() const { - string s = debugInfo() + "unknown exception"; - return s; + return "Ice::UnknownException"; +} + +string +Ice::UnknownException::_description() const +{ + return "unknown exception"; } LocalException* -Ice::UnknownException::clone() const +Ice::UnknownException::_clone() const { return new UnknownException(*this); } void -Ice::UnknownException::raise() const +Ice::UnknownException::_throw() const { throw *this; } @@ -69,20 +74,25 @@ Ice::UnknownUserException::operator=(const UnknownUserException& ex) } string -Ice::UnknownUserException::toString() const +Ice::UnknownUserException::_name() const { - string s = debugInfo() + "unknown user exception"; - return s; + return "Ice::UnknownUserException"; +} + +string +Ice::UnknownUserException::_description() const +{ + return "unknown user exception"; } LocalException* -Ice::UnknownUserException::clone() const +Ice::UnknownUserException::_clone() const { return new UnknownUserException(*this); } void -Ice::UnknownUserException::raise() const +Ice::UnknownUserException::_throw() const { throw *this; } @@ -105,20 +115,25 @@ Ice::VersionMismatchException::operator=(const VersionMismatchException& ex) } string -Ice::VersionMismatchException::toString() const +Ice::VersionMismatchException::_name() const { - string s = debugInfo() + "Ice library version mismatch"; - return s; + return "Ice::VersionMismatchException"; +} + +string +Ice::VersionMismatchException::_description() const +{ + return "Ice library version mismatch"; } LocalException* -Ice::VersionMismatchException::clone() const +Ice::VersionMismatchException::_clone() const { return new VersionMismatchException(*this); } void -Ice::VersionMismatchException::raise() const +Ice::VersionMismatchException::_throw() const { throw *this; } @@ -141,20 +156,25 @@ Ice::CommunicatorDestroyedException::operator=(const CommunicatorDestroyedExcept } string -Ice::CommunicatorDestroyedException::toString() const +Ice::CommunicatorDestroyedException::_name() const { - string s = debugInfo() + "communicator object destroyed"; - return s; + return "Ice::CommunicatorDestroyedException"; +} + +string +Ice::CommunicatorDestroyedException::_description() const +{ + return "communicator object destroyed"; } LocalException* -Ice::CommunicatorDestroyedException::clone() const +Ice::CommunicatorDestroyedException::_clone() const { return new CommunicatorDestroyedException(*this); } void -Ice::CommunicatorDestroyedException::raise() const +Ice::CommunicatorDestroyedException::_throw() const { throw *this; } @@ -177,20 +197,25 @@ Ice::ObjectAdapterDeactivatedException::operator=(const ObjectAdapterDeactivated } string -Ice::ObjectAdapterDeactivatedException::toString() const +Ice::ObjectAdapterDeactivatedException::_name() const { - string s = debugInfo() + "object adapter deactivated"; - return s; + return "Ice::ObjectAdapterDeactivatedException"; +} + +string +Ice::ObjectAdapterDeactivatedException::_description() const +{ + return "object adapter deactivated"; } LocalException* -Ice::ObjectAdapterDeactivatedException::clone() const +Ice::ObjectAdapterDeactivatedException::_clone() const { return new ObjectAdapterDeactivatedException(*this); } void -Ice::ObjectAdapterDeactivatedException::raise() const +Ice::ObjectAdapterDeactivatedException::_throw() const { throw *this; } @@ -213,20 +238,25 @@ Ice::NoEndpointException::operator=(const NoEndpointException& ex) } string -Ice::NoEndpointException::toString() const +Ice::NoEndpointException::_name() const { - string s = debugInfo() + "no suitable endpoint available"; - return s; + return "Ice::NoEndpointException"; +} + +string +Ice::NoEndpointException::_description() const +{ + return "no suitable endpoint available"; } LocalException* -Ice::NoEndpointException::clone() const +Ice::NoEndpointException::_clone() const { return new NoEndpointException(*this); } void -Ice::NoEndpointException::raise() const +Ice::NoEndpointException::_throw() const { throw *this; } @@ -249,20 +279,25 @@ Ice::EndpointParseException::operator=(const EndpointParseException& ex) } string -Ice::EndpointParseException::toString() const +Ice::EndpointParseException::_name() const { - string s = debugInfo() + "error while parsing endpoint"; - return s; + return "Ice::EndpointParseException"; +} + +string +Ice::EndpointParseException::_description() const +{ + return "error while parsing endpoint"; } LocalException* -Ice::EndpointParseException::clone() const +Ice::EndpointParseException::_clone() const { return new EndpointParseException(*this); } void -Ice::EndpointParseException::raise() const +Ice::EndpointParseException::_throw() const { throw *this; } @@ -285,20 +320,25 @@ Ice::ReferenceParseException::operator=(const ReferenceParseException& ex) } string -Ice::ReferenceParseException::toString() const +Ice::ReferenceParseException::_name() const { - string s = debugInfo() + "error while parsing reference"; - return s; + return "Ice::ReferenceParseException"; +} + +string +Ice::ReferenceParseException::_description() const +{ + return "error while parsing reference"; } LocalException* -Ice::ReferenceParseException::clone() const +Ice::ReferenceParseException::_clone() const { return new ReferenceParseException(*this); } void -Ice::ReferenceParseException::raise() const +Ice::ReferenceParseException::_throw() const { throw *this; } @@ -321,20 +361,25 @@ Ice::ReferenceIdentityException::operator=(const ReferenceIdentityException& ex) } string -Ice::ReferenceIdentityException::toString() const +Ice::ReferenceIdentityException::_name() const { - string s = debugInfo() + "reference identity mismatch in location forward"; - return s; + return "Ice::ReferenceIdentityException"; +} + +string +Ice::ReferenceIdentityException::_description() const +{ + return "reference identity mismatch in location forward"; } LocalException* -Ice::ReferenceIdentityException::clone() const +Ice::ReferenceIdentityException::_clone() const { return new ReferenceIdentityException(*this); } void -Ice::ReferenceIdentityException::raise() const +Ice::ReferenceIdentityException::_throw() const { throw *this; } @@ -357,20 +402,25 @@ Ice::ObjectNotExistException::operator=(const ObjectNotExistException& ex) } string -Ice::ObjectNotExistException::toString() const +Ice::ObjectNotExistException::_name() const { - string s = debugInfo() + "object does not exist"; - return s; + return "Ice::ObjectNotExistException"; +} + +string +Ice::ObjectNotExistException::_description() const +{ + return "object does not exist"; } LocalException* -Ice::ObjectNotExistException::clone() const +Ice::ObjectNotExistException::_clone() const { return new ObjectNotExistException(*this); } void -Ice::ObjectNotExistException::raise() const +Ice::ObjectNotExistException::_throw() const { throw *this; } @@ -393,20 +443,25 @@ Ice::OperationNotExistException::operator=(const OperationNotExistException& ex) } string -Ice::OperationNotExistException::toString() const +Ice::OperationNotExistException::_name() const { - string s = debugInfo() + "operation does not exist"; - return s; + return "Ice::OperationNotExistException"; +} + +string +Ice::OperationNotExistException::_description() const +{ + return "operation does not exist"; } LocalException* -Ice::OperationNotExistException::clone() const +Ice::OperationNotExistException::_clone() const { return new OperationNotExistException(*this); } void -Ice::OperationNotExistException::raise() const +Ice::OperationNotExistException::_throw() const { throw *this; } @@ -429,20 +484,25 @@ Ice::NoServantFactoryException::operator=(const NoServantFactoryException& ex) } string -Ice::NoServantFactoryException::toString() const +Ice::NoServantFactoryException::_name() const { - string s = debugInfo() + "no servant factory found for the requested servant type"; - return s; + return "Ice::NoServantFactoryException"; +} + +string +Ice::NoServantFactoryException::_description() const +{ + return "no servant factory found for the requested servant type"; } LocalException* -Ice::NoServantFactoryException::clone() const +Ice::NoServantFactoryException::_clone() const { return new NoServantFactoryException(*this); } void -Ice::NoServantFactoryException::raise() const +Ice::NoServantFactoryException::_throw() const { throw *this; } @@ -469,27 +529,32 @@ Ice::SystemException::operator=(const SystemException& ex) LocalException::operator=(ex); if (this != &ex) + { _error = ex._error; + } return *this; } string -Ice::SystemException::toString() const +Ice::SystemException::_name() const { - string s = debugInfo() + "system exception: "; - s += errorToString(_error); - return s; + return "Ice::SystemException"; +} +string +Ice::SystemException::_description() const +{ + return "system exception: " + errorToString(_error); } LocalException* -Ice::SystemException::clone() const +Ice::SystemException::_clone() const { return new SystemException(*this); } void -Ice::SystemException::raise() const +Ice::SystemException::_throw() const { throw *this; } @@ -519,21 +584,25 @@ Ice::SocketException::operator=(const SocketException& ex) } string -Ice::SocketException::toString() const +Ice::SocketException::_name() const { - string s = debugInfo() + "socket exception: "; - s += errorToString(_error); - return s; + return "Ice::SocketException"; +} + +string +Ice::SocketException::_description() const +{ + return "system exception: " + errorToString(_error); } LocalException* -Ice::SocketException::clone() const +Ice::SocketException::_clone() const { return new SocketException(*this); } void -Ice::SocketException::raise() const +Ice::SocketException::_throw() const { throw *this; } @@ -556,19 +625,25 @@ Ice::TimeoutException::operator=(const TimeoutException& ex) } string -Ice::TimeoutException::toString() const +Ice::TimeoutException::_name() const { - return debugInfo() + "timeout while sending or receiving data"; + return "Ice::TimeoutException"; +} + +string +Ice::TimeoutException::_description() const +{ + return "timeout while sending or receiving data"; } LocalException* -Ice::TimeoutException::clone() const +Ice::TimeoutException::_clone() const { return new TimeoutException(*this); } void -Ice::TimeoutException::raise() const +Ice::TimeoutException::_throw() const { throw *this; } @@ -591,19 +666,25 @@ Ice::ConnectTimeoutException::operator=(const ConnectTimeoutException& ex) } string -Ice::ConnectTimeoutException::toString() const +Ice::ConnectTimeoutException::_name() const +{ + return "Ice::ConnectTimeoutException"; +} + +string +Ice::ConnectTimeoutException::_description() const { - return debugInfo() + "timeout while establishing a connection"; + return "timeout while establishing a connection"; } LocalException* -Ice::ConnectTimeoutException::clone() const +Ice::ConnectTimeoutException::_clone() const { return new ConnectTimeoutException(*this); } void -Ice::ConnectTimeoutException::raise() const +Ice::ConnectTimeoutException::_throw() const { throw *this; } @@ -626,21 +707,25 @@ Ice::ConnectFailedException::operator=(const ConnectFailedException& ex) } string -Ice::ConnectFailedException::toString() const +Ice::ConnectFailedException::_name() const { - string s = debugInfo() + "connect failed: "; - s += errorToString(_error); - return s; + return "Ice::ConnectFailedException"; +} + +string +Ice::ConnectFailedException::_description() const +{ + return "connect failed: " + errorToString(_error); } LocalException* -Ice::ConnectFailedException::clone() const +Ice::ConnectFailedException::_clone() const { return new ConnectFailedException(*this); } void -Ice::ConnectFailedException::raise() const +Ice::ConnectFailedException::_throw() const { throw *this; } @@ -663,24 +748,34 @@ Ice::ConnectionLostException::operator=(const ConnectionLostException& ex) } string -Ice::ConnectionLostException::toString() const +Ice::ConnectionLostException::_name() const +{ + return "Ice::ConnectionLostException"; +} + +string +Ice::ConnectionLostException::_description() const { - string s = debugInfo() + "connection lost: "; + string s = "connection lost: "; if (_error == 0) + { s += "recv() returned zero"; + } else + { s += errorToString(_error); + } return s; } LocalException* -Ice::ConnectionLostException::clone() const +Ice::ConnectionLostException::_clone() const { return new ConnectionLostException(*this); } void -Ice::ConnectionLostException::raise() const +Ice::ConnectionLostException::_throw() const { throw *this; } @@ -706,21 +801,25 @@ Ice::DNSException::operator=(const DNSException& ex) } string -Ice::DNSException::toString() const +Ice::DNSException::_name() const { - string s = debugInfo() + "DNS error: "; - s += errorToStringDNS(_error); - return s; + return "Ice::DNSException"; +} + +string +Ice::DNSException::_description() const +{ + return "DNS error: " + errorToStringDNS(_error); } LocalException* -Ice::DNSException::clone() const +Ice::DNSException::_clone() const { return new DNSException(*this); } void -Ice::DNSException::raise() const +Ice::DNSException::_throw() const { throw *this; } @@ -760,19 +859,25 @@ Ice::UnmarshalOutOfBoundsException::operator=(const UnmarshalOutOfBoundsExceptio } string -Ice::UnmarshalOutOfBoundsException::toString() const +Ice::UnmarshalOutOfBoundsException::_name() const +{ + return "Ice::UnmarshalOutOfBoundsException"; +} + +string +Ice::UnmarshalOutOfBoundsException::_description() const { - return debugInfo() + "protocol error: out of bounds during unmarshaling"; + return "protocol error: out of bounds during unmarshaling"; } LocalException* -Ice::UnmarshalOutOfBoundsException::clone() const +Ice::UnmarshalOutOfBoundsException::_clone() const { return new UnmarshalOutOfBoundsException(*this); } void -Ice::UnmarshalOutOfBoundsException::raise() const +Ice::UnmarshalOutOfBoundsException::_throw() const { throw *this; } @@ -795,19 +900,25 @@ Ice::ServantUnmarshalException::operator=(const ServantUnmarshalException& ex) } string -Ice::ServantUnmarshalException::toString() const +Ice::ServantUnmarshalException::_name() const +{ + return "Ice::ServantUnmarshalException"; +} + +string +Ice::ServantUnmarshalException::_description() const { - return debugInfo() + "protocol error: servant type does not match signature"; + return "protocol error: servant type does not match signature"; } LocalException* -Ice::ServantUnmarshalException::clone() const +Ice::ServantUnmarshalException::_clone() const { return new ServantUnmarshalException(*this); } void -Ice::ServantUnmarshalException::raise() const +Ice::ServantUnmarshalException::_throw() const { throw *this; } @@ -830,19 +941,25 @@ Ice::StringEncodingException::operator=(const StringEncodingException& ex) } string -Ice::StringEncodingException::toString() const +Ice::StringEncodingException::_name() const { - return debugInfo() + "protocol error: string encoding error"; + return "Ice::StringEncodingException"; +} + +string +Ice::StringEncodingException::_description() const +{ + return "protocol error: string encoding error"; } LocalException* -Ice::StringEncodingException::clone() const +Ice::StringEncodingException::_clone() const { return new StringEncodingException(*this); } void -Ice::StringEncodingException::raise() const +Ice::StringEncodingException::_throw() const { throw *this; } @@ -865,19 +982,25 @@ Ice::MemoryLimitException::operator=(const MemoryLimitException& ex) } string -Ice::MemoryLimitException::toString() const +Ice::MemoryLimitException::_name() const { - return debugInfo() + "protocol error: memory limit exceeded"; + return "Ice::MemoryLimitException"; +} + +string +Ice::MemoryLimitException::_description() const +{ + return "protocol error: memory limit exceeded"; } LocalException* -Ice::MemoryLimitException::clone() const +Ice::MemoryLimitException::_clone() const { return new MemoryLimitException(*this); } void -Ice::MemoryLimitException::raise() const +Ice::MemoryLimitException::_throw() const { throw *this; } @@ -900,19 +1023,25 @@ Ice::EncapsulationException::operator=(const EncapsulationException& ex) } string -Ice::EncapsulationException::toString() const +Ice::EncapsulationException::_name() const { - return debugInfo() + "protocol error: illegal encapsulation"; + return "Ice::EncapsulationException"; +} + +string +Ice::EncapsulationException::_description() const +{ + return "protocol error: illegal encapsulation"; } LocalException* -Ice::EncapsulationException::clone() const +Ice::EncapsulationException::_clone() const { return new EncapsulationException(*this); } void -Ice::EncapsulationException::raise() const +Ice::EncapsulationException::_throw() const { throw *this; } @@ -935,19 +1064,25 @@ Ice::UnsupportedProtocolException::operator=(const UnsupportedProtocolException& } string -Ice::UnsupportedProtocolException::toString() const +Ice::UnsupportedProtocolException::_name() const { - return debugInfo() + "protocol error: unsupported protocol version"; + return "Ice::UnsupportedProtocolException"; +} + +string +Ice::UnsupportedProtocolException::_description() const +{ + return "protocol error: unsupported protocol version"; } LocalException* -Ice::UnsupportedProtocolException::clone() const +Ice::UnsupportedProtocolException::_clone() const { return new UnsupportedProtocolException(*this); } void -Ice::UnsupportedProtocolException::raise() const +Ice::UnsupportedProtocolException::_throw() const { throw *this; } @@ -970,19 +1105,25 @@ Ice::UnsupportedEncodingException::operator=(const UnsupportedEncodingException& } string -Ice::UnsupportedEncodingException::toString() const +Ice::UnsupportedEncodingException::_name() const +{ + return "Ice::UnsupportedEncodingException"; +} + +string +Ice::UnsupportedEncodingException::_description() const { - return debugInfo() + "protocol error: unsupported encoding version"; + return "protocol error: unsupported encoding version"; } LocalException* -Ice::UnsupportedEncodingException::clone() const +Ice::UnsupportedEncodingException::_clone() const { return new UnsupportedEncodingException(*this); } void -Ice::UnsupportedEncodingException::raise() const +Ice::UnsupportedEncodingException::_throw() const { throw *this; } @@ -1005,19 +1146,25 @@ Ice::InvalidMessageException::operator=(const InvalidMessageException& ex) } string -Ice::InvalidMessageException::toString() const +Ice::InvalidMessageException::_name() const { - return debugInfo() + "protocol error: invalid message type"; + return "Ice::InvalidMessageException"; +} + +string +Ice::InvalidMessageException::_description() const +{ + return "protocol error: invalid message type"; } LocalException* -Ice::InvalidMessageException::clone() const +Ice::InvalidMessageException::_clone() const { return new InvalidMessageException(*this); } void -Ice::InvalidMessageException::raise() const +Ice::InvalidMessageException::_throw() const { throw *this; } @@ -1040,19 +1187,25 @@ Ice::UnknownMessageException::operator=(const UnknownMessageException& ex) } string -Ice::UnknownMessageException::toString() const +Ice::UnknownMessageException::_name() const { - return debugInfo() + "protocol error: unknown message type"; + return "Ice::UnknownMessageException"; +} + +string +Ice::UnknownMessageException::_description() const +{ + return "protocol error: unknown message type"; } LocalException* -Ice::UnknownMessageException::clone() const +Ice::UnknownMessageException::_clone() const { return new UnknownMessageException(*this); } void -Ice::UnknownMessageException::raise() const +Ice::UnknownMessageException::_throw() const { throw *this; } @@ -1075,19 +1228,25 @@ Ice::UnknownRequestIdException::operator=(const UnknownRequestIdException& ex) } string -Ice::UnknownRequestIdException::toString() const +Ice::UnknownRequestIdException::_name() const +{ + return "Ice::UnknownRequestIdException"; +} + +string +Ice::UnknownRequestIdException::_description() const { - return debugInfo() + "protocol error: unknown request id"; + return "protocol error: unknown request id"; } LocalException* -Ice::UnknownRequestIdException::clone() const +Ice::UnknownRequestIdException::_clone() const { return new UnknownRequestIdException(*this); } void -Ice::UnknownRequestIdException::raise() const +Ice::UnknownRequestIdException::_throw() const { throw *this; } @@ -1110,19 +1269,25 @@ Ice::UnknownReplyStatusException::operator=(const UnknownReplyStatusException& e } string -Ice::UnknownReplyStatusException::toString() const +Ice::UnknownReplyStatusException::_name() const +{ + return "Ice::UnknownReplyStatusException"; +} + +string +Ice::UnknownReplyStatusException::_description() const { - return debugInfo() + "protocol error: unknown reply status"; + return "protocol error: unknown reply status"; } LocalException* -Ice::UnknownReplyStatusException::clone() const +Ice::UnknownReplyStatusException::_clone() const { return new UnknownReplyStatusException(*this); } void -Ice::UnknownReplyStatusException::raise() const +Ice::UnknownReplyStatusException::_throw() const { throw *this; } @@ -1145,19 +1310,25 @@ Ice::CloseConnectionException::operator=(const CloseConnectionException& ex) } string -Ice::CloseConnectionException::toString() const +Ice::CloseConnectionException::_name() const { - return debugInfo() + "protocol error: connection closed by server"; + return "Ice::CloseConnectionException"; +} + +string +Ice::CloseConnectionException::_description() const +{ + return "protocol error: connection closed by server"; } LocalException* -Ice::CloseConnectionException::clone() const +Ice::CloseConnectionException::_clone() const { return new CloseConnectionException(*this); } void -Ice::CloseConnectionException::raise() const +Ice::CloseConnectionException::_throw() const { throw *this; } @@ -1180,19 +1351,25 @@ Ice::AbortBatchRequestException::operator=(const AbortBatchRequestException& ex) } string -Ice::AbortBatchRequestException::toString() const +Ice::AbortBatchRequestException::_name() const +{ + return "Ice::AbortBatchRequestException"; +} + +string +Ice::AbortBatchRequestException::_description() const { - return debugInfo() + "protocol error: batch request was aborted"; + return "protocol error: batch request was aborted"; } LocalException* -Ice::AbortBatchRequestException::clone() const +Ice::AbortBatchRequestException::_clone() const { return new AbortBatchRequestException(*this); } void -Ice::AbortBatchRequestException::raise() const +Ice::AbortBatchRequestException::_throw() const { throw *this; } diff --git a/cpp/src/Ice/Outgoing.cpp b/cpp/src/Ice/Outgoing.cpp index fbb10f9911b..e8811a6a076 100644 --- a/cpp/src/Ice/Outgoing.cpp +++ b/cpp/src/Ice/Outgoing.cpp @@ -20,12 +20,12 @@ using namespace IceInternal; IceInternal::NonRepeatable::NonRepeatable(const NonRepeatable& ex) { - _ex = auto_ptr<LocalException>(ex.get()->clone()); + _ex = auto_ptr<LocalException>(ex.get()->_clone()); } IceInternal::NonRepeatable::NonRepeatable(const ::Ice::LocalException& ex) { - _ex = auto_ptr<LocalException>(ex.clone()); + _ex = auto_ptr<LocalException>(ex._clone()); } const ::Ice::LocalException* @@ -134,7 +134,7 @@ IceInternal::Outgoing::invoke() // if(dynamic_cast<const CloseConnectionException*>(_exception.get())) { - _exception->raise(); + _exception->_throw(); } // @@ -258,7 +258,7 @@ IceInternal::Outgoing::finished(const LocalException& ex) if (_state == StateInProgress) { _state = StateLocalException; - _exception = auto_ptr<LocalException>(ex.clone()); + _exception = auto_ptr<LocalException>(ex._clone()); notify(); } } diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 2a58500e7bd..3d8239ccb16 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -279,7 +279,7 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt) try { - ex.raise(); + ex._throw(); } catch (const CloseConnectionException&) { @@ -309,7 +309,7 @@ IceProxy::Ice::Object::__handleException(const LocalException& ex, int& cnt) s << "cannot retry operation call because retry limit has been exceeded\n" << ex; logger->trace(traceLevels->retryCat, s.str()); } - ex.raise(); + ex._throw(); } if (traceLevels->retry >= 1) @@ -359,7 +359,7 @@ IceProxy::Ice::Object::__rethrowException(const LocalException& ex) _delegate = 0; - ex.raise(); + ex._throw(); } IceProxy::Ice::Object::Object() diff --git a/cpp/src/IcePack/Parser.cpp b/cpp/src/IcePack/Parser.cpp index eeb73637a69..f489c698e0b 100644 --- a/cpp/src/IcePack/Parser.cpp +++ b/cpp/src/IcePack/Parser.cpp @@ -76,7 +76,9 @@ IcePack::Parser::add(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -95,7 +97,9 @@ IcePack::Parser::remove(const list<string>& args) } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -127,7 +131,9 @@ IcePack::Parser::listAll() } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } @@ -140,7 +146,9 @@ IcePack::Parser::shutdown() } catch(const LocalException& ex) { - error(ex.toString()); + ostringstream s; + s << ex; + error(s.str()); } } |