summaryrefslogtreecommitdiff
path: root/cpp/include/Ice/Exception.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Ice/Exception.h')
-rw-r--r--cpp/include/Ice/Exception.h70
1 files changed, 56 insertions, 14 deletions
diff --git a/cpp/include/Ice/Exception.h b/cpp/include/Ice/Exception.h
index 8c5803b9d24..e2787e33765 100644
--- a/cpp/include/Ice/Exception.h
+++ b/cpp/include/Ice/Exception.h
@@ -26,14 +26,20 @@ class InputStream;
typedef IceUtil::Exception Exception;
-//
-// Base class for all Ice run-time exceptions
-//
+/**
+ * Base class for all Ice run-time exceptions.
+ * \headerfile Ice/Ice.h
+ */
class ICE_API LocalException : public IceUtil::Exception
{
public:
- LocalException(const char*, int);
+ /**
+ * The file and line number are required for all local exceptions.
+ * @param file The file name in which the exception was raised, typically __FILE__.
+ * @param line The line number at which the exception was raised, typically __LINE__.
+ */
+ LocalException(const char* file, int line);
#ifdef ICE_CPP11_COMPILER
LocalException(const LocalException&) = default;
@@ -42,22 +48,35 @@ public:
virtual ~LocalException() throw();
#endif
+ /**
+ * Polymporphically clones this exception.
+ * @return A shallow copy of this exception.
+ */
#ifdef ICE_CPP11_MAPPING
std::unique_ptr<LocalException> ice_clone() const;
#else
virtual LocalException* ice_clone() const = 0;
#endif
+ /**
+ * Obtains the Slice type ID of this exception.
+ * @return The fully-scoped type ID.
+ */
static const std::string& ice_staticId();
};
-//
-// Base class for all Ice user exceptions
-//
+/**
+ * Base class for all Ice user exceptions.
+ * \headerfile Ice/Ice.h
+ */
class ICE_API UserException : public IceUtil::Exception
{
public:
+ /**
+ * Polymporphically clones this exception.
+ * @return A shallow copy of this exception.
+ */
#ifdef ICE_CPP11_MAPPING
std::unique_ptr<UserException> ice_clone() const;
#else
@@ -65,30 +84,45 @@ public:
#endif
virtual Ice::SlicedDataPtr ice_getSlicedData() const;
+ /**
+ * Obtains the Slice type ID of this exception.
+ * @return The fully-scoped type ID.
+ */
static const std::string& ice_staticId();
+ /// \cond STREAM
virtual void _write(::Ice::OutputStream*) const;
virtual void _read(::Ice::InputStream*);
virtual bool _usesClasses() const;
+ /// \endcond
protected:
+ /// \cond STREAM
virtual void _writeImpl(::Ice::OutputStream*) const {}
virtual void _readImpl(::Ice::InputStream*) {}
+ /// \endcond
};
-//
-// Base class for all Ice system exceptions
-//
-// System exceptions are currently Ice internal, non-documented
-// exceptions.
-//
+/**
+ * Base class for all Ice system exceptions.
+ *
+ * System exceptions are currently Ice internal, non-documented
+ * exceptions.
+ * \headerfile Ice/Ice.h
+ */
class ICE_API SystemException : public IceUtil::Exception
{
public:
- SystemException(const char*, int);
+ /**
+ * The file and line number are required for all local exceptions.
+ * @param file The file name in which the exception was raised, typically __FILE__.
+ * @param line The line number at which the exception was raised, typically __LINE__.
+ */
+ SystemException(const char* file, int line);
+
#ifdef ICE_CPP11_COMPILER
SystemException(const SystemException&) = default;
virtual ~SystemException();
@@ -96,12 +130,20 @@ public:
virtual ~SystemException() throw();
#endif
+ /**
+ * Polymporphically clones this exception.
+ * @return A shallow copy of this exception.
+ */
#ifdef ICE_CPP11_MAPPING
std::unique_ptr<SystemException> ice_clone() const;
#else
virtual SystemException* ice_clone() const = 0;
#endif
+ /**
+ * Obtains the Slice type ID of this exception.
+ * @return The fully-scoped type ID.
+ */
static const std::string& ice_staticId();
};