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.h33
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;
};