3 #include <kafka/Project.h>
5 #include <kafka/Error.h>
6 #include <kafka/RdKafkaHelper.h>
7 #include <kafka/Utility.h>
9 #include <librdkafka/rdkafka.h>
25 : _when(std::chrono::system_clock::now()),
28 _error(std::make_shared<Error>(
error))
39 const char*
what() const noexcept
override
41 _what = utility::getLocalTimeString(_when) +
": " + _error->toString() +
" (" + std::string(_filename) +
":" + std::to_string(_lineno) +
")";
46 using TimePoint = std::chrono::system_clock::time_point;
48 const TimePoint _when;
49 const std::string _filename;
50 const std::size_t _lineno;
51 const std::shared_ptr<Error> _error;
52 mutable std::string _what;
56 #define KAFKA_THROW_ERROR(error) throw KafkaException(__FILE__, __LINE__, error)
57 #define KAFKA_THROW_IF_WITH_ERROR(error) if (error) KAFKA_THROW_ERROR(error)
Unified error type.
Definition: Error.h:32
Specific exception for Kafka clients.
Definition: KafkaException.h:22
const Error & error() const
Obtains the underlying error.
Definition: KafkaException.h:34
const char * what() const noexcept override
Obtains explanatory string.
Definition: KafkaException.h:39