diff options
Diffstat (limited to 'cpp/include/IceUtil/Exception.h')
-rw-r--r-- | cpp/include/IceUtil/Exception.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/cpp/include/IceUtil/Exception.h b/cpp/include/IceUtil/Exception.h index 02b0b72d93f..1fb9b68de9f 100644 --- a/cpp/include/IceUtil/Exception.h +++ b/cpp/include/IceUtil/Exception.h @@ -65,17 +65,35 @@ public: IllegalArgumentException(const char*, int, const std::string&); virtual ~IllegalArgumentException() throw(); virtual std::string ice_name() const; + virtual void ice_print(std::ostream&) const; virtual Exception* ice_clone() const; virtual void ice_throw() const; - std::string reason; + std::string reason() const; private: static const char* _name; + std::string _reason; }; -ICE_UTIL_API std::ostream& operator<<(std::ostream&, const IllegalArgumentException&); +class ICE_UTIL_API SyscallException : public Exception +{ +public: + + SyscallException(const char*, int, int); + virtual std::string ice_name() const; + virtual void ice_print(std::ostream&) const; + virtual Exception* ice_clone() const; + virtual void ice_throw() const; + + int error() const; + +private: + + const int _error; + static const char* _name; +}; } |