Function iox::errorHandler

Function Documentation

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

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);
        }
    }
};
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);