CppUnitException.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:2k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #ifndef CPPUNIT_CPPUNITEXCEPTION_H
  2. #define CPPUNIT_CPPUNITEXCEPTION_H
  3. /* 
  4.  * CppUnitException is an exception that serves
  5.  * descriptive strings through its what () method
  6.  *
  7.  */
  8. #include <exception>
  9. #include <string>
  10. #define CPPUNIT_UNKNOWNFILENAME        "<unknown>"
  11. #define CPPUNIT_UNKNOWNLINENUMBER      (-1)
  12. class CppUnitException : public exception
  13. {
  14. public:
  15.                         CppUnitException (std::string  message    = "", 
  16.                                           long         lineNumber = CPPUNIT_UNKNOWNLINENUMBER, 
  17.                                           std::string  fileName   = CPPUNIT_UNKNOWNFILENAME);
  18.                         CppUnitException (const CppUnitException& other);
  19.     virtual             ~CppUnitException ();
  20.     CppUnitException&   operator= (const CppUnitException& other);
  21.     const char          *what() const throw ();
  22.     long                lineNumber ();
  23.     std::string         fileName ();
  24. private:
  25.     std::string         m_message;
  26.     long                m_lineNumber;
  27.     std::string         m_fileName;
  28. };
  29. // Construct the exception
  30. inline CppUnitException::CppUnitException (const CppUnitException& other)
  31. : exception (other)
  32.     m_message       = other.m_message; 
  33.     m_lineNumber    = other.m_lineNumber;
  34.     m_fileName      = other.m_fileName;
  35. inline CppUnitException::CppUnitException (std::string message, long lineNumber, std::string fileName)
  36. : m_message (message), m_lineNumber (lineNumber), m_fileName (fileName)
  37. {}
  38. // Destruct the exception
  39. inline CppUnitException::~CppUnitException ()
  40. {}
  41. // Perform an assignment
  42. inline CppUnitException& CppUnitException::operator= (const CppUnitException& other)
  43. exception::operator= (other);
  44.     if (&other != this) {
  45.         m_message       = other.m_message; 
  46.         m_lineNumber    = other.m_lineNumber;
  47.         m_fileName      = other.m_fileName;
  48.     }
  49.     return *this; 
  50. }
  51. // Return descriptive message
  52. inline const char *CppUnitException::what() const throw ()
  53. { return m_message.c_str (); }
  54. // The line on which the error occurred
  55. inline long CppUnitException::lineNumber ()
  56. { return m_lineNumber; }
  57. // The file in which the error occurred
  58. inline std::string CppUnitException::fileName ()
  59. { return m_fileName; }
  60. #endif