X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fexception.cpp;h=028d253f2d885a6c9d9c29a4dc8c875a40b698f2;hb=78ac4667aa7e7d4b5b73d6a0c20d00eb476ef092;hp=f1c530f7e4249928541a7603f311dcaac2cbee82;hpb=af8c83b633edbc8187cff754c175d696be31cdf1;p=lttng-tools.git diff --git a/src/common/exception.cpp b/src/common/exception.cpp index f1c530f7e..028d253f2 100644 --- a/src/common/exception.cpp +++ b/src/common/exception.cpp @@ -6,12 +6,14 @@ */ #include "exception.hpp" -#include + #include +#include + namespace { -std::string format_throw_location( - const char *file_name, const char *function_name, unsigned int line_number) +std::string +format_throw_location(const char *file_name, const char *function_name, unsigned int line_number) { std::stringstream location; @@ -22,54 +24,66 @@ std::string format_throw_location( } } /* namespace */ -lttng::ctl::error::error(lttng_error_code error_code, - const char *file_name, - const char *function_name, - unsigned int line_number) : - runtime_error(std::string(error_get_str(error_code)), file_name, function_name, line_number), - _error_code{error_code} +lttng::ctl::error::error(const std::string& msg, + lttng_error_code error_code, + const char *file_name, + const char *function_name, + unsigned int line_number) : + runtime_error(msg + ": " + std::string(error_get_str(error_code)), + file_name, + function_name, + line_number), + _error_code{ error_code } { } lttng::posix_error::posix_error(const std::string& msg, - int errno_code, - const char *file_name, - const char *function_name, - unsigned int line_number) : + int errno_code, + const char *file_name, + const char *function_name, + unsigned int line_number) : std::system_error(errno_code, - std::generic_category(), - msg + " " + format_throw_location(file_name, function_name, line_number)) + std::generic_category(), + msg + " " + format_throw_location(file_name, function_name, line_number)) { } lttng::runtime_error::runtime_error(const std::string& msg, - const char *file_name, - const char *function_name, - unsigned int line_number) : + const char *file_name, + const char *function_name, + unsigned int line_number) : + std::runtime_error(msg + " " + format_throw_location(file_name, function_name, line_number)) +{ +} + +lttng::unsupported_error::unsupported_error(const std::string& msg, + const char *file_name, + const char *function_name, + unsigned int line_number) : std::runtime_error(msg + " " + format_throw_location(file_name, function_name, line_number)) { } lttng::communication_error::communication_error(const std::string& msg, - const char *file_name, - const char *function_name, - unsigned int line_number) : + const char *file_name, + const char *function_name, + unsigned int line_number) : runtime_error(msg, file_name, function_name, line_number) { } lttng::protocol_error::protocol_error(const std::string& msg, - const char *file_name, - const char *function_name, - unsigned int line_number) : + const char *file_name, + const char *function_name, + unsigned int line_number) : communication_error(msg, file_name, function_name, line_number) { } lttng::invalid_argument_error::invalid_argument_error(const std::string& msg, - const char *file_name, - const char *function_name, - unsigned int line_number) : + const char *file_name, + const char *function_name, + unsigned int line_number) : runtime_error(msg, file_name, function_name, line_number) { }