From 3f62168ed0b088eec3cb2903f03966f7d501f564 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 11 Dec 2014 15:26:50 +0100 Subject: moved to CharReader everywhere --- src/core/Exceptions.hpp | 162 ------------------------------------------------ 1 file changed, 162 deletions(-) delete mode 100644 src/core/Exceptions.hpp (limited to 'src/core/Exceptions.hpp') diff --git a/src/core/Exceptions.hpp b/src/core/Exceptions.hpp deleted file mode 100644 index 00d6106..0000000 --- a/src/core/Exceptions.hpp +++ /dev/null @@ -1,162 +0,0 @@ -/* - Ousía - Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel - - This program 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. - - This program 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 this program. If not, see . -*/ - -/** - * @file Exceptions.hpp - * - * Describes basic exception classes which are used throughout Ousía. - * - * @author Andreas Stöckel (astoecke@techfak.uni-bielefeld.de) - */ - -#ifndef _OUSIA_EXCEPTIONS_HPP_ -#define _OUSIA_EXCEPTIONS_HPP_ - -namespace ousia { - -/** - * Base exception class all other Ousía exceptions should derive from. - */ -class OusiaException : public std::exception { -private: - /** - * Error message which will be printed by the runtime environment if the - * exception is not caught and handled in the code. - */ - const std::string formatedMessage; - -public: - /** - * Constructor of the OusiaException class. - * - * @param formatedMessage is a formated message that should be printed by - * the runtime environment if the exception is not caught. - */ - OusiaException(std::string formatedMessage) - : formatedMessage(std::move(formatedMessage)) - { - } - - /** - * Virtual destructor. - */ - virtual ~OusiaException() {} - - /** - * Implementation of the std::exception what function and used to retrieve - * the error message that should be printed by the runtime environment. - * - * @return a reference to the formated message string given in the - * constructor. - */ - const char *what() const noexcept override - { - return formatedMessage.c_str(); - } -}; - -/** - * Exception class which can be directly passed to a Logger instance and thus - * makes it simple to handle non-recoverable errors in the code. - */ -class LoggableException : public OusiaException { -private: - /** - * Function used internally to build the formated message that should be - * reported to the runtime environment. - */ - static std::string formatMessage(const std::string &msg, - const std::string &file, int line, - int column); - -public: - /** - * Message describing the error that occured. - */ - const std::string msg; - - /** - * Name of the file in which the error occured. May be empty. - */ - const std::string file; - - /** - * Line at which the exception occured. Negative values are ignored. - */ - const int line; - - /** - * Column at which the exception occured. Negative values are ignored. - */ - const int column; - - /** - * Constructor of the LoggableException class. - * - * @param msg contains the error message. - * @param file provides the context the message refers to. May be empty. - * @param line is the line in the above file the message refers to. - * @param column is the column in the above file the message refers to. - */ - LoggableException(std::string msg, std::string file, int line = -1, - int column = -1) - : OusiaException(formatMessage(msg, file, line, column)), - msg(std::move(msg)), - file(std::move(file)), - line(line), - column(column) - { - } - - /** - * Constructor of the LoggableException class with empty file. - * - * @param msg contains the error message. - * @param line is the line in the above file the message refers to. - * @param column is the column in the above file the message refers to. - */ - LoggableException(std::string msg, int line = -1, int column = -1) - : OusiaException(formatMessage(msg, "", line, column)), - msg(std::move(msg)), - line(line), - column(column) - { - } - - /** - * Constructor of the LoggableException class with empty file and an - * position object. - * - * @param msg is the actual log message. - * @param pos is a const reference to a variable which provides position - * information. - */ - template - LoggableException(std::string msg, const PosType &pos) - : OusiaException( - formatMessage(msg, "", pos.getLine(), pos.getColumn())), - msg(std::move(msg)), - line(pos.getLine()), - column(pos.getColumn()) - { - } -}; -} - -#endif /* _OUSIA_EXCEPTIONS_HPP_ */ - -- cgit v1.2.3