iceoryx_hoofs 2.0.8
Loading...
Searching...
No Matches
iox::ErrorHandler Class Reference

This handler is needed for unit testing, special debugging cases and other corner cases where we'd like to explicitly suppress the error handling. More...

#include <iceoryx_hoofs/error_handling/error_handling.hpp>

Static Public Member Functions

static cxx::GenericRAII setTemporaryErrorHandler (const HandlerFunction &newHandler) noexcept
static const char * toString (const Error error) noexcept

Static Protected Member Functions

static void reactOnErrorLevel (const ErrorLevel level, const char *errorText) noexcept

Friends

void errorHandler (const Error error, const std::function< void()> &errorCallBack=std::function< void()>(), const ErrorLevel level=ErrorLevel::FATAL)
 Howto use the error handler correctly 1.) If the error you would like to handle is not listed in ICEORYX_ERRORS(error)... macro just add them like: error(MODULE_NAME__MY_FUNKY_ERROR) Attention: Create an error after the following convention: MODULE_NAME__A_CLEAR_BUT_SHORT_ERROR_DESCRIPTION And a long name is alright!

Detailed Description

This handler is needed for unit testing, special debugging cases and other corner cases where we'd like to explicitly suppress the error handling.

◆ errorHandler

void errorHandler ( const Error error,
const std::function< void()> & errorCallBack = std::function<void()>(),
const ErrorLevel level = ErrorLevel::FATAL )
friend

Howto use the error handler correctly 1.) If the error you would like to handle is not listed in ICEORYX_ERRORS(error)... macro just add them like: error(MODULE_NAME__MY_FUNKY_ERROR) Attention: Create an error after the following convention: MODULE_NAME__A_CLEAR_BUT_SHORT_ERROR_DESCRIPTION And a long name is alright!

2.) Call errorHandler(Error::kMODULE_NAME__MY_FUNKY_ERROR); Please pay attention to the "k" prefix The defaults for errorCallback and ErrorLevel can also be overwritten: errorHandler( Error::kMODULE_NAME__MY_FUNKY_ERROR, []{ std::cout << "MyCustomCallback" << std::endl; }, ErrorLevel::MODERATE );

class PrettyClass {
float division(float a, float b) {
if ( b == 0.0f ) {
errorHandler(Error::kPRETTY_CLASS__DIVISION_BY_ZERO);
}
}
};
friend void errorHandler(const Error error, const std::function< void()> &errorCallBack, const ErrorLevel level) noexcept
Howto use the error handler correctly 1.) If the error you would like to handle is not listed in ICEO...
bool called = false;
auto temporaryErrorHandler = ErrorHandler::setTemporaryErrorHandler(
[&](const Error e, std::function<void()>, const ErrorLevel) {
called = true;
});
errorHandler(Error::kTEST__ASSERT_CALLED);
ASSERT_TRUE(called);
ErrorLevel
the available error levels FATAL
Definition error_handling.hpp:236

The documentation for this class was generated from the following file: