comparison egglib/egglib-2.1.5/include/egglib-cpp/EggException.hpp @ 1:420b57c3c185 draft

Uploaded
author dereeper
date Fri, 10 Jul 2015 04:39:30 -0400
parents
children
comparison
equal deleted inserted replaced
0:3e19d0dfcf3e 1:420b57c3c185
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