Mercurial > repos > dereeper > sniplay
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/egglib/egglib-2.1.5/include/egglib-cpp/EggException.hpp Fri Jul 10 04:39:30 2015 -0400 @@ -0,0 +1,173 @@ +/* + Copyright 2009 Stéphane De Mita, Mathieu Siol + + This file is part of the EggLib library. + + EggLib is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + EggLib is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with EggLib. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef EGGLIB_EGGEXCEPTION_HPP +#define EGGLIB_EGGEXCEPTION_HPP + +#include <string> +#include <exception> + +namespace egglib { + + /** \brief Base exception type for errors occurring in this library + * + * \ingroup core + * + */ + class EggException : public std::exception { + public: + /// Constructor with empty error message + EggException(); + /// Creates the exception + EggException(const char* message); + /// Destructor + ~EggException() throw() {} + /// Gets error message + virtual const char* what() const throw(); + + protected: + std::string message; + + }; + + + /** \brief Exception type for memory errors + * + * \ingroup core + * + */ + class EggMemoryError : public EggException { + public: + /// Creates the exception + EggMemoryError(); + /// Destructor + ~EggMemoryError() throw() {} + }; + + + /** \brief Exception type for argument value errors + * + * \ingroup core + * + */ + class EggArgumentValueError : public EggException { + public: + /// Creates the exception + EggArgumentValueError(const char* m ); + /// Destructor + ~EggArgumentValueError() throw() {} + }; + + + /** \brief Exception type for runtime errors + * + * Runtime error definition is rather large. Includes bugs as well + * as logical errors. + * + * \ingroup core + * + */ + class EggRuntimeError : public EggException { + public: + /// Creates the exception + EggRuntimeError(const char* m ); + /// Destructor + ~EggRuntimeError() throw() {} + }; + + + /** \brief Exception type for file/string formatting errors + * + * \ingroup core + * + */ + class EggFormatError : public EggException { + public: + /// Creates the exception + EggFormatError(const char* fileName, const char* expectedFormat, const char* m); + /// Destructor + ~EggFormatError() throw() {} + /// Gets the file name + std::string fileName() const; + /// Gets the expected format + std::string expectedFormat() const; + /// Formats a longer string + virtual const char* what_more() const; + + protected: + std::string fname; + std::string eformat; + }; + + + /** \brief Exception type for errors while opening a file + * + * \ingroup core + * + */ + class EggOpenFileError : public EggException { + public: + /// Creates the exception + EggOpenFileError(const char* fileName ); + /// Destructor + ~EggOpenFileError() throw() {} + }; + + + /** \brief Exception type for unaligned sequences + * + * \ingroup core + * + */ + class EggUnalignedError : public EggException { + public: + /** \brief Creates the exception + * + */ + EggUnalignedError(); + + /** \brief Destructor + * + */ + ~EggUnalignedError() throw() {} + }; + + /** \brief Exception type for invalid character + * + * \ingroup core + * + */ + class EggInvalidCharacterError : public EggException { + public: + /** \brief Creates the exception + * + */ + EggInvalidCharacterError(char c, unsigned int seqIndex, unsigned int posIndex); + + /** \brief Destructor + * + */ + ~EggInvalidCharacterError() throw() {} + }; + +} + + + +#endif