diff options
Diffstat (limited to 'cpp/src/IceUtil/Exception.cpp')
-rw-r--r-- | cpp/src/IceUtil/Exception.cpp | 156 |
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 |