diff options
author | Johannes Schauer <josch@debian.org> | 2015-07-07 10:12:00 +0100 |
---|---|---|
committer | Johannes Schauer <josch@debian.org> | 2015-07-07 10:12:00 +0100 |
commit | 0e8c1c9d31d15034b1ff1062c9bf0bfcdc849dd9 (patch) | |
tree | 840a335d9a4487d3f1909a31c8526a2e647809e7 /fuzzylite/fl/Exception.h |
Import fuzzylite_5.1+dfsg.orig.tar.xz
[dgit import orig fuzzylite_5.1+dfsg.orig.tar.xz]
Diffstat (limited to 'fuzzylite/fl/Exception.h')
-rw-r--r-- | fuzzylite/fl/Exception.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/fuzzylite/fl/Exception.h b/fuzzylite/fl/Exception.h new file mode 100644 index 0000000..f33fb13 --- /dev/null +++ b/fuzzylite/fl/Exception.h @@ -0,0 +1,66 @@ +/* + Author: Juan Rada-Vilela, Ph.D. + Copyright (C) 2010-2014 FuzzyLite Limited + All rights reserved + + This file is part of fuzzylite. + + fuzzylite is free software: you can redistribute it and/or modify it under + the terms of the GNU Lesser General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + fuzzylite 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 Lesser General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public License + along with fuzzylite. If not, see <http://www.gnu.org/licenses/>. + + fuzzyliteâ„¢ is a trademark of FuzzyLite Limited. + + */ + +#ifndef FL_EXCEPTION_H +#define FL_EXCEPTION_H + +#include "fl/fuzzylite.h" + +#include <exception> +#include <string> +#include <vector> + +namespace fl { + + class FL_API Exception : public std::exception { + protected: + std::string _what; + public: + explicit Exception(const std::string& what); + Exception(const std::string& what, const std::string& file, int line, + const std::string& function); + virtual ~Exception() FL_INOEXCEPT FL_IOVERRIDE; + FL_DEFAULT_COPY_AND_MOVE(Exception) + + virtual void setWhat(const std::string& what); + virtual std::string getWhat() const; + virtual const char* what() const FL_INOEXCEPT FL_IOVERRIDE; + + virtual void append(const std::string& whatElse); + virtual void append(const std::string& file, int line, const std::string& function); + virtual void append(const std::string& whatElse, + const std::string& file, int line, const std::string& function); + + static std::string btCallStack(); + + static void signalHandler(int signal); + static void convertToException(int signal); + static void terminate(); + static void catchException(const std::exception& exception); + + + }; + +} +#endif /* FL_EXCEPTION_H */ |