#ifndef AFUN_CORE_EXCEPTION_H #define AFUN_CORE_EXCEPTION_H #include "aFuntool.h" namespace aFuncore { class aFuncoreException : public aFuntool::aFunException { public: AFUN_INLINE explicit aFuncoreException(const std::string &msg); }; class EnvironmentDestructException : public aFuncoreException { public: AFUN_INLINE EnvironmentDestructException(); }; class RuntimeError : public aFuncoreException { std::string type; public: AFUN_INLINE RuntimeError(const std::string &msg, std::string type); AFUN_INLINE const std::string &getType() const; }; class ArgumentError : public RuntimeError { std::string type; public: AFUN_INLINE ArgumentError(); }; } #include "core-exception.inline.h" #endif //AFUN_CORE_EXCEPTION_H