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