diff options
Diffstat (limited to 'cpp/src/FreezeScript/Exception.cpp')
-rw-r--r-- | cpp/src/FreezeScript/Exception.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/cpp/src/FreezeScript/Exception.cpp b/cpp/src/FreezeScript/Exception.cpp new file mode 100644 index 00000000000..e67e91015e1 --- /dev/null +++ b/cpp/src/FreezeScript/Exception.cpp @@ -0,0 +1,65 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <FreezeScript/Exception.h> + +using namespace std; + +// +// FailureException +// +FreezeScript::FailureException::FailureException(const char* file, int line, const string& reason) : + IceUtil::Exception(file, line), _reason(reason) +{ +} + +FreezeScript::FailureException::~FailureException() throw() +{ +} + +const char* FreezeScript::FailureException::_name = "FreezeScript::FailureException"; + +string +FreezeScript::FailureException::ice_name() const +{ + return _name; +} + +void +FreezeScript::FailureException::ice_print(ostream& out) const +{ +#if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug + Exception::ice_print(out); +#else + ::IceUtil::Exception::ice_print(out); +#endif + out << ":\nerror occurred during transformation"; // TODO + if(!_reason.empty()) + { + out << ":\n" << _reason; + } +} + +IceUtil::Exception* +FreezeScript::FailureException::ice_clone() const +{ + return new FailureException(ice_file(), ice_line(), _reason); +} + +void +FreezeScript::FailureException::ice_throw() const +{ + throw *this; +} + +string +FreezeScript::FailureException::reason() const +{ + return _reason; +} |