Seamly2D
Code documentation
vexceptionobjecterror.h
Go to the documentation of this file.
1 /***************************************************************************
2  * *
3  * Copyright (C) 2017 Seamly, LLC *
4  * *
5  * https://github.com/fashionfreedom/seamly2d *
6  * *
7  ***************************************************************************
8  **
9  ** Seamly2D is free software: you can redistribute it and/or modify
10  ** it under the terms of the GNU General Public License as published by
11  ** the Free Software Foundation, either version 3 of the License, or
12  ** (at your option) any later version.
13  **
14  ** Seamly2D is distributed in the hope that it will be useful,
15  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  ** GNU General Public License for more details.
18  **
19  ** You should have received a copy of the GNU General Public License
20  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
21  **
22  **************************************************************************
23 
24  ************************************************************************
25  **
26  ** @file vexceptionobjecterror.h
27  ** @author Roman Telezhynskyi <dismine(at)gmail.com>
28  ** @date November 15, 2013
29  **
30  ** @brief
31  ** @copyright
32  ** This source code is part of the Valentine project, a pattern making
33  ** program, whose allow create and modeling patterns of clothing.
34  ** Copyright (C) 2013-2015 Seamly2D project
35  ** <https://github.com/fashionfreedom/seamly2d> All Rights Reserved.
36  **
37  ** Seamly2D is free software: you can redistribute it and/or modify
38  ** it under the terms of the GNU General Public License as published by
39  ** the Free Software Foundation, either version 3 of the License, or
40  ** (at your option) any later version.
41  **
42  ** Seamly2D is distributed in the hope that it will be useful,
43  ** but WITHOUT ANY WARRANTY; without even the implied warranty of
44  ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45  ** GNU General Public License for more details.
46  **
47  ** You should have received a copy of the GNU General Public License
48  ** along with Seamly2D. If not, see <http://www.gnu.org/licenses/>.
49  **
50  *************************************************************************/
51 
52 #ifndef VEXCEPTIONOBJECTERROR_H
53 #define VEXCEPTIONOBJECTERROR_H
54 
55 #include <qcompilerdetection.h>
56 #include <QString>
57 #include <QtGlobal>
58 
59 #include "../ifcdef.h"
60 #include "vexception.h"
61 
62 class QDomElement;
63 
64 /**
65  * @brief The VExceptionObjectError class for exception object error
66  */
68 {
69 public:
70  VExceptionObjectError(const QString &what, const QDomElement &domElement);
73  virtual ~VExceptionObjectError() V_NOEXCEPT_EXPR (true) Q_DECL_EQ_DEFAULT;
74  virtual QString ErrorMessage() const Q_DECL_OVERRIDE;
75  virtual QString DetailedInformation() const Q_DECL_OVERRIDE;
76  QString TagText() const;
77  QString TagName() const;
78  qint32 LineNumber() const;
79 protected:
80  /** @brief tagText tag text */
81  QString tagText;
82 
83  /** @brief tagName tag name */
84  QString tagName;
85 
86  /** @brief lineNumber line number */
87  qint32 lineNumber;
88 };
89 
90 //---------------------------------------------------------------------------------------------------------------------
91 /**
92  * @brief TagText return tag text
93  * @return tag text
94  */
95 inline QString VExceptionObjectError::TagText() const
96 {
97  return tagText;
98 }
99 
100 //---------------------------------------------------------------------------------------------------------------------
101 /**
102  * @brief TagName return tag name
103  * @return tag name
104  */
105 inline QString VExceptionObjectError::TagName() const
106 {
107  return tagName;
108 }
109 
110 //---------------------------------------------------------------------------------------------------------------------
111 /**
112  * @brief LineNumber return line number in file
113  * @return line number
114  */
116 {
117  return lineNumber;
118 }
119 
120 #endif // VEXCEPTIONOBJECTERROR_H
The VExceptionObjectError class for exception object error.
VExceptionObjectError & operator=(const VExceptionObjectError &e)
QString TagName() const
TagName return tag name.
VExceptionObjectError(const QString &what, const QDomElement &domElement)
VExceptionObjectError exception object error.
qint32 lineNumber
lineNumber line number
QString tagName
tagName tag name
virtual QString ErrorMessage() const Q_DECL_OVERRIDE
ErrorMessage return main error message.
virtual ~VExceptionObjectError() Q_DECL_EQ_DEFAULT
virtual QString DetailedInformation() const Q_DECL_OVERRIDE
DetailedInformation return detailed information about error.
QString tagText
tagText tag text
QString TagText() const
TagText return tag text.
qint32 LineNumber() const
LineNumber return line number in file.
The VException class parent for all exception. Could be use for abstract exception.
Definition: vexception.h:66
virtual const char * what() const Q_DECL_OVERRIDE
Definition: vexception.cpp:161
#define V_NOEXCEPT_EXPR(x)
Definition: ifcdef.h:91