summaryrefslogtreecommitdiff
path: root/include/cppunit/Exception.h
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2001-06-11 19:00:52 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2001-06-11 19:00:52 +0000
commitda8e822d28d281276f4cef78b7e7c7f2660de232 (patch)
treecc9e6073f27fd8e8754f237acb8cfb34dececea9 /include/cppunit/Exception.h
parente38eb47e23d6106c32ee136351b0080313339270 (diff)
downloadcppunit-da8e822d28d281276f4cef78b7e7c7f2660de232.tar.gz
Include/cppunit/Exception.
include/cppunit/Exception.h: now inherit from std::exception instead of ::exception. Added clone(), type(), and isInstanceOf() methods for subclassing support. Changed UNKNOWNLINENUMBER type to long for consistence with lineNumber(). * include/cppunit/NotEqualException.h: addded, exception to be used with assertEquals(). * include/cppunit/TestAssert.h: changed TestAssert into a namespace instead of a class. This remove the need of template member methods and does not cause compiler internal error on VC++. Macro CPPUNIT_ASSERT_MESSAGE has been added to fail test with a specified message. * include/cppunit/TestCaller.h: added "Expected exception" support. Based on Tim Jansen patch (#403745), but use a traits instead of RTTI to distingh between "No expected exception" and "Excepted exception". Exception type name is reported using RTTI if CPPUNIT_USE_TYPEINFO is defined.
Diffstat (limited to 'include/cppunit/Exception.h')
-rw-r--r--include/cppunit/Exception.h47
1 files changed, 33 insertions, 14 deletions
diff --git a/include/cppunit/Exception.h b/include/cppunit/Exception.h
index eb43119..d324e9e 100644
--- a/include/cppunit/Exception.h
+++ b/include/cppunit/Exception.h
@@ -12,31 +12,50 @@ namespace CppUnit {
*
*/
- class Exception : public exception
+ class Exception : public std::exception
{
public:
- Exception (std::string message = "",
- long lineNumber = UNKNOWNLINENUMBER,
- std::string fileName = UNKNOWNFILENAME);
+ class Type
+ {
+ public:
+ Type( std::string type ) : m_type ( type ) {}
+
+ bool operator ==( const Type &other ) const
+ {
+ return m_type == other.m_type;
+ }
+ private:
+ const std::string m_type;
+ };
+
+
+ Exception( std::string message = "",
+ long lineNumber = UNKNOWNLINENUMBER,
+ std::string fileName = UNKNOWNFILENAME);
Exception (const Exception& other);
- virtual ~Exception ();
+ virtual ~Exception ();
- Exception& operator= (const Exception& other);
+ Exception& operator= (const Exception& other);
- const char *what() const throw ();
+ const char *what() const throw ();
- long lineNumber ();
- std::string fileName ();
+ long lineNumber ();
+ std::string fileName ();
static const std::string UNKNOWNFILENAME;
- static const int UNKNOWNLINENUMBER;
+ static const long UNKNOWNLINENUMBER;
- private:
- std::string m_message;
- long m_lineNumber;
- std::string m_fileName;
+ virtual Exception *clone() const;
+ virtual bool isInstanceOf( const Type &type ) const;
+
+ static Type type();
+
+ private:
+ std::string m_message;
+ long m_lineNumber;
+ std::string m_fileName;
};
} // namespace CppUnit