summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/Exception.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/IceUtil/Exception.h')
-rw-r--r--cpp/include/IceUtil/Exception.h22
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;
+};
}