{ \
dwStatus FRWK_CHECK_DW_ERROR_IGNORE_SOME_result{x}; \
if (DW_SUCCESS != FRWK_CHECK_DW_ERROR_IGNORE_SOME_result) \
{ \
dwStatus ignoreErros[]{__VA_ARGS__}; \
if (std::find(std::begin(ignoreErros), std::end(ignoreErros), FRWK_CHECK_DW_ERROR_IGNORE_SOME_result) != std::end(ignoreErros)) \
{ \
DW_LOGD << __FILE__ << ":" << __LINE__ \
<< " Ignoring Error: " \
<< dwGetStatusName(FRWK_CHECK_DW_ERROR_IGNORE_SOME_result) <<
". Falling back on calling " <<
GET_STRING(fallback) \
<< dw::core::Logger::State::endl; \
FRWK_CHECK_DW_ERROR_IGNORE_SOME_result = fallback; \
if (DW_SUCCESS != FRWK_CHECK_DW_ERROR_IGNORE_SOME_result) \
{ \
throw dw::core::ExceptionWithStatus(FRWK_CHECK_DW_ERROR_IGNORE_SOME_result,
"After ignoring errors from ignore list, fallback operation %s encountered DriveWorks error.",
GET_STRING(fallback)); \
} \
} \
} \
if (DW_SUCCESS != FRWK_CHECK_DW_ERROR_IGNORE_SOME_result) \
{ \
throw dw::core::ExceptionWithStatus(FRWK_CHECK_DW_ERROR_IGNORE_SOME_result, "DriveWorks error not in ignore list."); \
} \
};