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