1
|
1 /*
|
|
2 Copyright 2009 Stéphane De Mita, Mathieu Siol
|
|
3
|
|
4 This file is part of the EggLib library.
|
|
5
|
|
6 EggLib is free software: you can redistribute it and/or modify
|
|
7 it under the terms of the GNU General Public License as published by
|
|
8 the Free Software Foundation, either version 3 of the License, or
|
|
9 (at your option) any later version.
|
|
10
|
|
11 EggLib is distributed in the hope that it will be useful,
|
|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14 GNU General Public License for more details.
|
|
15
|
|
16 You should have received a copy of the GNU General Public License
|
|
17 along with EggLib. If not, see <http://www.gnu.org/licenses/>.
|
|
18 */
|
|
19
|
|
20 #ifndef EGGLIB_EGGEXCEPTION_HPP
|
|
21 #define EGGLIB_EGGEXCEPTION_HPP
|
|
22
|
|
23 #include <string>
|
|
24 #include <exception>
|
|
25
|
|
26 namespace egglib {
|
|
27
|
|
28 /** \brief Base exception type for errors occurring in this library
|
|
29 *
|
|
30 * \ingroup core
|
|
31 *
|
|
32 */
|
|
33 class EggException : public std::exception {
|
|
34 public:
|
|
35 /// Constructor with empty error message
|
|
36 EggException();
|
|
37 /// Creates the exception
|
|
38 EggException(const char* message);
|
|
39 /// Destructor
|
|
40 ~EggException() throw() {}
|
|
41 /// Gets error message
|
|
42 virtual const char* what() const throw();
|
|
43
|
|
44 protected:
|
|
45 std::string message;
|
|
46
|
|
47 };
|
|
48
|
|
49
|
|
50 /** \brief Exception type for memory errors
|
|
51 *
|
|
52 * \ingroup core
|
|
53 *
|
|
54 */
|
|
55 class EggMemoryError : public EggException {
|
|
56 public:
|
|
57 /// Creates the exception
|
|
58 EggMemoryError();
|
|
59 /// Destructor
|
|
60 ~EggMemoryError() throw() {}
|
|
61 };
|
|
62
|
|
63
|
|
64 /** \brief Exception type for argument value errors
|
|
65 *
|
|
66 * \ingroup core
|
|
67 *
|
|
68 */
|
|
69 class EggArgumentValueError : public EggException {
|
|
70 public:
|
|
71 /// Creates the exception
|
|
72 EggArgumentValueError(const char* m );
|
|
73 /// Destructor
|
|
74 ~EggArgumentValueError() throw() {}
|
|
75 };
|
|
76
|
|
77
|
|
78 /** \brief Exception type for runtime errors
|
|
79 *
|
|
80 * Runtime error definition is rather large. Includes bugs as well
|
|
81 * as logical errors.
|
|
82 *
|
|
83 * \ingroup core
|
|
84 *
|
|
85 */
|
|
86 class EggRuntimeError : public EggException {
|
|
87 public:
|
|
88 /// Creates the exception
|
|
89 EggRuntimeError(const char* m );
|
|
90 /// Destructor
|
|
91 ~EggRuntimeError() throw() {}
|
|
92 };
|
|
93
|
|
94
|
|
95 /** \brief Exception type for file/string formatting errors
|
|
96 *
|
|
97 * \ingroup core
|
|
98 *
|
|
99 */
|
|
100 class EggFormatError : public EggException {
|
|
101 public:
|
|
102 /// Creates the exception
|
|
103 EggFormatError(const char* fileName, const char* expectedFormat, const char* m);
|
|
104 /// Destructor
|
|
105 ~EggFormatError() throw() {}
|
|
106 /// Gets the file name
|
|
107 std::string fileName() const;
|
|
108 /// Gets the expected format
|
|
109 std::string expectedFormat() const;
|
|
110 /// Formats a longer string
|
|
111 virtual const char* what_more() const;
|
|
112
|
|
113 protected:
|
|
114 std::string fname;
|
|
115 std::string eformat;
|
|
116 };
|
|
117
|
|
118
|
|
119 /** \brief Exception type for errors while opening a file
|
|
120 *
|
|
121 * \ingroup core
|
|
122 *
|
|
123 */
|
|
124 class EggOpenFileError : public EggException {
|
|
125 public:
|
|
126 /// Creates the exception
|
|
127 EggOpenFileError(const char* fileName );
|
|
128 /// Destructor
|
|
129 ~EggOpenFileError() throw() {}
|
|
130 };
|
|
131
|
|
132
|
|
133 /** \brief Exception type for unaligned sequences
|
|
134 *
|
|
135 * \ingroup core
|
|
136 *
|
|
137 */
|
|
138 class EggUnalignedError : public EggException {
|
|
139 public:
|
|
140 /** \brief Creates the exception
|
|
141 *
|
|
142 */
|
|
143 EggUnalignedError();
|
|
144
|
|
145 /** \brief Destructor
|
|
146 *
|
|
147 */
|
|
148 ~EggUnalignedError() throw() {}
|
|
149 };
|
|
150
|
|
151 /** \brief Exception type for invalid character
|
|
152 *
|
|
153 * \ingroup core
|
|
154 *
|
|
155 */
|
|
156 class EggInvalidCharacterError : public EggException {
|
|
157 public:
|
|
158 /** \brief Creates the exception
|
|
159 *
|
|
160 */
|
|
161 EggInvalidCharacterError(char c, unsigned int seqIndex, unsigned int posIndex);
|
|
162
|
|
163 /** \brief Destructor
|
|
164 *
|
|
165 */
|
|
166 ~EggInvalidCharacterError() throw() {}
|
|
167 };
|
|
168
|
|
169 }
|
|
170
|
|
171
|
|
172
|
|
173 #endif
|