summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/Exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceUtil/Exception.cpp')
-rw-r--r--cpp/src/IceUtil/Exception.cpp156
1 files changed, 88 insertions, 68 deletions
diff --git a/cpp/src/IceUtil/Exception.cpp b/cpp/src/IceUtil/Exception.cpp
index 7b654a5d090..aa3700ca604 100644
--- a/cpp/src/IceUtil/Exception.cpp
+++ b/cpp/src/IceUtil/Exception.cpp
@@ -42,8 +42,7 @@
# define DBGHELP_TRANSLATE_TCHAR
# include <IceUtil/StringConverter.h>
# if _MSC_VER >= 1900
-# // VS 2015 RC issues this warning for code in DbgHelp.h
-# pragma warning(disable:4091)
+# pragma warning(disable:4091) // VS 2015 RC issues this warning for code in DbgHelp.h
# endif
# endif
# include <DbgHelp.h>
@@ -407,18 +406,10 @@ IceUtil::Exception::Exception(const char* file, int line) :
{
}
-IceUtil::Exception::~Exception() throw()
+IceUtil::Exception::~Exception() ICE_NOEXCEPT
{
}
-const char* IceUtil::Exception::_name = "IceUtil::Exception";
-
-string
-IceUtil::Exception::ice_name() const
-{
- return _name;
-}
-
void
IceUtil::Exception::ice_print(ostream& out) const
{
@@ -426,11 +417,11 @@ IceUtil::Exception::ice_print(ostream& out) const
{
out << _file << ':' << _line << ": ";
}
- out << ice_name();
+ out << ice_id();
}
const char*
-IceUtil::Exception::what() const throw()
+IceUtil::Exception::what() const ICE_NOEXCEPT
{
try
{
@@ -451,11 +442,41 @@ IceUtil::Exception::what() const throw()
return "";
}
+string
+IceUtil::Exception::ice_id() const
+{
+ return "::IceUtil::Exception";
+}
+
+#ifdef ICE_CPP11_MAPPING
+exception_ptr
+IceUtil::Exception::ice_clone() const
+{
+ try
+ {
+ ice_throw();
+ }
+ catch(...)
+ {
+ return current_exception();
+ }
+ assert(false);
+ return nullptr; // Make compilers happy
+}
+#else
+
+string
+IceUtil::Exception::ice_name() const
+{
+ return ice_id().substr(2);
+}
+
IceUtil::Exception*
IceUtil::Exception::ice_clone() const
{
return new Exception(*this);
}
+#endif
void
IceUtil::Exception::ice_throw() const
@@ -497,23 +518,23 @@ IceUtil::NullHandleException::NullHandleException(const char* file, int line) :
}
}
-IceUtil::NullHandleException::~NullHandleException() throw()
+IceUtil::NullHandleException::~NullHandleException() ICE_NOEXCEPT
{
}
-const char* IceUtil::NullHandleException::_name = "IceUtil::NullHandleException";
-
string
-IceUtil::NullHandleException::ice_name() const
+IceUtil::NullHandleException::ice_id() const
{
- return _name;
+ return "::IceUtil::NullHandleException";
}
+#ifndef ICE_CPP11_MAPPING
IceUtil::NullHandleException*
IceUtil::NullHandleException::ice_clone() const
{
return new NullHandleException(*this);
}
+#endif
void
IceUtil::NullHandleException::ice_throw() const
@@ -532,16 +553,8 @@ IceUtil::IllegalArgumentException::IllegalArgumentException(const char* file, in
{
}
-IceUtil::IllegalArgumentException::~IllegalArgumentException() throw()
-{
-}
-
-const char* IceUtil::IllegalArgumentException::_name = "IceUtil::IllegalArgumentException";
-
-string
-IceUtil::IllegalArgumentException::ice_name() const
+IceUtil::IllegalArgumentException::~IllegalArgumentException() ICE_NOEXCEPT
{
- return _name;
}
void
@@ -551,11 +564,19 @@ IceUtil::IllegalArgumentException::ice_print(ostream& out) const
out << ": " << _reason;
}
+string
+IceUtil::IllegalArgumentException::ice_id() const
+{
+ return "::IceUtil::IllegalArgumentException";
+}
+
+#ifndef ICE_CPP11_MAPPING
IceUtil::IllegalArgumentException*
IceUtil::IllegalArgumentException::ice_clone() const
{
return new IllegalArgumentException(*this);
}
+#endif
void
IceUtil::IllegalArgumentException::ice_throw() const
@@ -572,9 +593,6 @@ IceUtil::IllegalArgumentException::reason() const
//
// IllegalConversionException
//
-
-const char* IceUtil::IllegalConversionException::_name = "IceUtil::IllegalConversionException";
-
IceUtil::IllegalConversionException::IllegalConversionException(const char* file, int line):
Exception(file, line)
{}
@@ -585,15 +603,9 @@ IceUtil::IllegalConversionException::IllegalConversionException(const char* file
_reason(reason)
{}
-IceUtil::IllegalConversionException::~IllegalConversionException() throw()
+IceUtil::IllegalConversionException::~IllegalConversionException() ICE_NOEXCEPT
{}
-string
-IceUtil::IllegalConversionException::ice_name() const
-{
- return _name;
-}
-
void
IceUtil::IllegalConversionException::ice_print(ostream& out) const
{
@@ -602,11 +614,19 @@ IceUtil::IllegalConversionException::ice_print(ostream& out) const
}
+string
+IceUtil::IllegalConversionException::ice_id() const
+{
+ return "::IceUtil::IllegalConversionException";
+}
+
+#ifndef ICE_CPP11_MAPPING
IceUtil::IllegalConversionException*
IceUtil::IllegalConversionException::ice_clone() const
{
return new IllegalConversionException(*this);
}
+#endif
void
IceUtil::IllegalConversionException::ice_throw() const
@@ -628,14 +648,6 @@ IceUtil::SyscallException::SyscallException(const char* file, int line, int err
{
}
-const char* IceUtil::SyscallException::_name = "IceUtil::SyscallException";
-
-string
-IceUtil::SyscallException::ice_name() const
-{
- return _name;
-}
-
void
IceUtil::SyscallException::ice_print(ostream& os) const
{
@@ -646,11 +658,19 @@ IceUtil::SyscallException::ice_print(ostream& os) const
}
}
+string
+IceUtil::SyscallException::ice_id() const
+{
+ return "::IceUtil::SyscallException";
+}
+
+#ifndef ICE_CPP11_MAPPING
IceUtil::SyscallException*
IceUtil::SyscallException::ice_clone() const
{
return new SyscallException(*this);
}
+#endif
void
IceUtil::SyscallException::ice_throw() const
@@ -672,18 +692,10 @@ IceUtil::FileLockException::FileLockException(const char* file, int line, int er
{
}
-IceUtil::FileLockException::~FileLockException() throw()
+IceUtil::FileLockException::~FileLockException() ICE_NOEXCEPT
{
}
-const char* IceUtil::FileLockException::_name = "IceUtil::FileLockedException";
-
-string
-IceUtil::FileLockException::ice_name() const
-{
- return _name;
-}
-
void
IceUtil::FileLockException::ice_print(ostream& os) const
{
@@ -695,11 +707,19 @@ IceUtil::FileLockException::ice_print(ostream& os) const
}
}
+string
+IceUtil::FileLockException::ice_id() const
+{
+ return "::IceUtil::FileLockException";
+}
+
+#ifndef ICE_CPP11_MAPPING
IceUtil::FileLockException*
IceUtil::FileLockException::ice_clone() const
{
return new FileLockException(*this);
}
+#endif
void
IceUtil::FileLockException::ice_throw() const
@@ -722,23 +742,23 @@ IceUtil::OptionalNotSetException::OptionalNotSetException(const char* file, int
}
}
-IceUtil::OptionalNotSetException::~OptionalNotSetException() throw()
+IceUtil::OptionalNotSetException::~OptionalNotSetException() ICE_NOEXCEPT
{
}
-const char* IceUtil::OptionalNotSetException::_name = "IceUtil::OptionalNotSetException";
-
string
-IceUtil::OptionalNotSetException::ice_name() const
+IceUtil::OptionalNotSetException::ice_id() const
{
- return _name;
+ return "::IceUtil::OptionalNotSetException";
}
+#ifndef ICE_CPP11_MAPPING
IceUtil::OptionalNotSetException*
IceUtil::OptionalNotSetException::ice_clone() const
{
return new OptionalNotSetException(*this);
}
+#endif
void
IceUtil::OptionalNotSetException::ice_throw() const
@@ -753,18 +773,10 @@ IceUtil::IconvInitializationException::IconvInitializationException(const char*
{
}
-IceUtil::IconvInitializationException::~IconvInitializationException() throw()
+IceUtil::IconvInitializationException::~IconvInitializationException() ICE_NOEXCEPT
{
}
-const char* IceUtil::IconvInitializationException::_name = "IceUtil::IconvInitializationException";
-
-string
-IceUtil::IconvInitializationException::ice_name() const
-{
- return _name;
-}
-
void
IceUtil::IconvInitializationException::ice_print(ostream& out) const
{
@@ -772,11 +784,19 @@ IceUtil::IconvInitializationException::ice_print(ostream& out) const
out << ": " << _reason;
}
+string
+IceUtil::IconvInitializationException::ice_id() const
+{
+ return "::IceUtil::IconvInitializationException";
+}
+
+#ifndef ICE_CPP11_MAPPING
IceUtil::IconvInitializationException*
IceUtil::IconvInitializationException::ice_clone() const
{
return new IconvInitializationException(*this);
}
+#endif
void
IceUtil::IconvInitializationException::ice_throw() const