Function iox::errorHandler
Defined in File error_handling.hpp
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);