/* * This file is part of KnowRob, please consult * https://github.com/knowrob/knowrob for license details. */ #include #include using namespace knowrob; static inline std::string makeWhat(std::string_view exc_type, std::string_view exc_msg, std::string_view exc_trace) { if (exc_trace.empty()) { return fmt::format("{}: {}", exc_type, exc_msg); } else { return fmt::format("{}: {}\n{}", exc_type, exc_msg, exc_trace); } } KnowRobError::KnowRobError(std::string_view exc_type, std::string_view exc_msg) : std::runtime_error(makeWhat(exc_type, exc_msg, "")), line_(0) { } KnowRobError::KnowRobError(std::string_view exc_type, std::string_view exc_msg, std::string_view exc_trace) : std::runtime_error(makeWhat(exc_type, exc_msg, exc_trace)), line_(0) { } KnowRobError::KnowRobError(std::string_view exc_type, std::string_view exc_msg, std::string_view exc_file, int exc_line) : std::runtime_error(makeWhat(exc_type, exc_msg, "")), file_(exc_file), line_(exc_line) { } KnowRobError::KnowRobError(std::string_view exc_type, std::string_view exc_msg, std::string_view exc_file, int exc_line, std::string_view exc_trace) : std::runtime_error(makeWhat(exc_type, exc_msg, exc_trace)), file_(exc_file), line_(exc_line) { }