21 #include "Typedefs.hpp" 43 const std::string&
object,
44 const std::string& reason_val)
57 const std::string& context()
const noexcept
62 const std::string& object()
const noexcept
67 const std::string& reason()
const noexcept
72 void setContext(
const std::string& context)
77 void setObject(
const std::string&
object)
82 void setReason(
const std::string& reason_val)
94 virtual std::string
message() const noexcept
97 return _context +
": " + (!_object.empty() ? _object +
": " :
"") + _reason;
100 return "usbguard::Exception: exception^2";
104 virtual const char* what() const noexcept
106 return "usbguard::Exception";
110 std::string _context;
115 #define USBGUARD_BUG(m) \ 116 ::usbguard::Exception(__PRETTY_FUNCTION__, "BUG", m) 121 ErrnoException(
const std::string& context,
const std::string&
object,
const int errno_value)
122 :
Exception(context,
object, ErrnoException::reasonFromErrno(errno_value))
126 static std::string reasonFromErrno(
const int errno_value)
129 return std::string(strerror_r(errno_value, buffer,
sizeof buffer));
133 #define USBGUARD_SYSCALL_THROW(context, syscall_bool_expression) \ 135 if (syscall_bool_expression) { \ 136 throw usbguard::ErrnoException(context, #syscall_bool_expression, errno); \ 149 uint64_t message_id = 0)
151 _message_id(message_id)
156 const std::string&
object,
157 const std::string& reason,
158 uint64_t message_id = 0)
160 _message_id(message_id)
166 _message_id(rhs._message_id)
170 bool hasMessageID()
const noexcept
172 return _message_id != 0;
175 uint64_t messageID()
const noexcept
180 void setMessageID(uint64_t message_id)
182 _message_id = message_id;
186 uint64_t _message_id{0};
USBGuard exception.
Definition: Exception.hpp:39
virtual std::string message() const noexcept
Returns exception message.
Definition: Exception.hpp:94
Definition: Exception.hpp:118
Definition: Exception.hpp:140