| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #ifndef CPPUNIT_EXCEPTION_H
- #define CPPUNIT_EXCEPTION_H
- #include <cppunit/Portability.h>
- #include <cppunit/Message.h>
- #include <cppunit/SourceLine.h>
- #include <exception>
- CPPUNIT_NS_BEGIN
- /*! \brief Exceptions thrown by failed assertions.
- * \ingroup BrowsingCollectedTestResult
- *
- * Exception is an exception that serves
- * descriptive strings through its what() method
- */
- class CPPUNIT_API Exception : public std::exception
- {
- public:
- /*! \brief Constructs the exception with the specified message and source location.
- * \param message Message associated to the exception.
- * \param sourceLine Source location related to the exception.
- */
- Exception( const Message &message = Message(),
- const SourceLine &sourceLine = SourceLine() );
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
- /*!
- * \deprecated Use other constructor instead.
- */
- Exception( std::string message,
- long lineNumber,
- std::string fileName );
- #endif
- /*! \brief Constructs a copy of an exception.
- * \param other Exception to copy.
- */
- Exception( const Exception &other );
- /// Destructs the exception
- virtual ~Exception() throw();
- /// Performs an assignment
- Exception &operator =( const Exception &other );
- /// Returns descriptive message
- const char *what() const throw();
- /// Location where the error occured
- SourceLine sourceLine() const;
- /// Message related to the exception.
- Message message() const;
- /// Set the message.
- void setMessage( const Message &message );
- #ifdef CPPUNIT_ENABLE_SOURCELINE_DEPRECATED
- /// The line on which the error occurred
- long lineNumber() const;
- /// The file in which the error occurred
- std::string fileName() const;
- static const std::string UNKNOWNFILENAME;
- static const long UNKNOWNLINENUMBER;
- #endif
- /// Clones the exception.
- virtual Exception *clone() const;
- protected:
- // VC++ does not recognize call to parent class when prefixed
- // with a namespace. This is a workaround.
- typedef std::exception SuperClass;
- Message m_message;
- SourceLine m_sourceLine;
- std::string m_whatMessage;
- };
- CPPUNIT_NS_END
- #endif // CPPUNIT_EXCEPTION_H
|