| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #include <cppunit/Exception.h>
- CPPUNIT_NS_BEGIN
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
- /*!
- * \deprecated Use SourceLine::isValid() instead.
- */
- const std::string Exception::UNKNOWNFILENAME = "<unknown>";
- /*!
- * \deprecated Use SourceLine::isValid() instead.
- */
- const long Exception::UNKNOWNLINENUMBER = -1;
- #endif
- Exception::Exception( const Exception &other )
- : std::exception( other )
- {
- m_message = other.m_message;
- m_sourceLine = other.m_sourceLine;
- }
- Exception::Exception( const Message &message,
- const SourceLine &sourceLine )
- : m_message( message )
- , m_sourceLine( sourceLine )
- {
- }
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
- Exception::Exception( std::string message,
- long lineNumber,
- std::string fileName )
- : m_message( message )
- , m_sourceLine( fileName, lineNumber )
- {
- }
- #endif
- Exception::~Exception() throw()
- {
- }
- Exception &
- Exception::operator =( const Exception& other )
- {
- // Don't call superclass operator =(). VC++ STL implementation
- // has a bug. It calls the destructor and copy constructor of
- // std::exception() which reset the virtual table to std::exception.
- // SuperClass::operator =(other);
- if ( &other != this )
- {
- m_message = other.m_message;
- m_sourceLine = other.m_sourceLine;
- }
- return *this;
- }
- const char*
- Exception::what() const throw()
- {
- Exception *mutableThis = CPPUNIT_CONST_CAST( Exception *, this );
- mutableThis->m_whatMessage = m_message.shortDescription() + "\n" +
- m_message.details();
- return m_whatMessage.c_str();
- }
- SourceLine
- Exception::sourceLine() const
- {
- return m_sourceLine;
- }
- Message
- Exception::message() const
- {
- return m_message;
- }
- void
- Exception::setMessage( const Message &message )
- {
- m_message = message;
- }
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
- long
- Exception::lineNumber() const
- {
- return m_sourceLine.isValid() ? m_sourceLine.lineNumber() :
- UNKNOWNLINENUMBER;
- }
- std::string
- Exception::fileName() const
- {
- return m_sourceLine.isValid() ? m_sourceLine.fileName() :
- UNKNOWNFILENAME;
- }
- #endif
- Exception *
- Exception::clone() const
- {
- return new Exception( *this );
- }
- CPPUNIT_NS_END
|