diff options
Diffstat (limited to 'cpp/include/IceUtil/Exception.h')
-rw-r--r-- | cpp/include/IceUtil/Exception.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/cpp/include/IceUtil/Exception.h b/cpp/include/IceUtil/Exception.h index aa74b67c749..f130dbb2ff1 100644 --- a/cpp/include/IceUtil/Exception.h +++ b/cpp/include/IceUtil/Exception.h @@ -44,7 +44,38 @@ public: NullHandleException(const char*, int); virtual std::string ice_name() const; - virtual std::string ice_description() const; + virtual Exception* ice_clone() const; + virtual void ice_throw() const; +}; + +class ICE_UTIL_API SyscallException : public Exception +{ +public: + + SyscallException(const std::string&, const char*, int); + virtual std::string ice_name() const; + virtual void ice_print(std::ostream&) const; + virtual Exception* ice_clone() const; + virtual void ice_throw() const; + +#ifdef WIN32 + // + // IceInternal::errorToString does the same thing... refactor? + // + static std::string errorToString(DWORD); +#endif + +private: + + std::string _error; +}; + +class ICE_UTIL_API LockedException : public Exception +{ +public: + + LockedException(const char*, int); + virtual std::string ice_name() const; virtual Exception* ice_clone() const; virtual void ice_throw() const; }; |