1 #pragma once 2 3 #include <exception> 4 #include <string> 5 6 namespace host_tool 7 { 8 9 class ToolException : public std::exception 10 { 11 public: ToolException(const std::string & message)12 explicit ToolException(const std::string& message) : message(message) {}; 13 what() const14 virtual const char* what() const noexcept override 15 { 16 return message.c_str(); 17 } 18 19 private: 20 std::string message; 21 }; 22 23 class NotFoundException : public ToolException 24 { 25 public: NotFoundException(const std::string & device)26 explicit NotFoundException(const std::string& device) : 27 ToolException(std::string("Couldn't find " + device)) {}; 28 }; 29 30 } // namespace host_tool 31