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
20namespace 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