#ifndef UTIL_EXCEPTION #define UTIL_EXCEPTION #include <exception> #include <string> namespace eic::util { class Exception : public std::exception { public: Exception(std::string_view msg, std::string_view type = "exception") : msg_{msg}, type_{type} {} virtual const char* what() const throw() { return msg_.c_str(); } virtual const char* type() const throw() { return type_.c_str(); } virtual ~Exception() throw() {} private: std::string msg_; std::string type_; }; } // namespace eic::util #endif