MyGUI  3.4.1
MyGUI_Exception.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef MYGUI_EXCEPTION_H_
8 #define MYGUI_EXCEPTION_H_
9 
10 #include "MyGUI_Prerequest.h"
11 #include <exception>
12 #include <string>
13 
14 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
15  // disable: warning C4275: non dll-interface class '***' used as base for dll-interface clas '***'
16 # pragma warning (push)
17 # pragma warning (disable : 4275)
18 #endif
19 
20 namespace MyGUI
21 {
22 
24  public std::exception
25  {
26  public:
27  Exception(const std::string& _description, const std::string& _source, const char* _file, long _line);
28 
29  Exception(const Exception& _rhs);
30 
31  Exception& operator = (const Exception& _rhs);
32 
33  virtual const std::string& getFullDescription() const;
34 
35  virtual const std::string& getSource() const;
36 
37  virtual const std::string& getFile() const;
38 
39  virtual long getLine() const;
40 
41  virtual const std::string& getDescription() const;
42 
43  const char* what() const noexcept override;
44 
45  protected:
46  std::string mDescription;
47  std::string mSource;
48  std::string mFile;
49  long mLine;
50  mutable std::string mFullDesc;
51  };
52 
53 } // namespace MyGUI
54 
55 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
56 # pragma warning (pop)
57 #endif
58 
59 #endif // MYGUI_EXCEPTION_H_
#define MYGUI_EXPORT
std::string mFullDesc
std::string mSource
std::string mDescription
std::string mFile