client,
Request& req,
int max_locked_retries,
std::chrono::milliseconds retry_wait_ms)
{
int cur_try = 0;
while (cur_try < max_locked_retries){
try{
auto response = client.SomeEndPoint(req);
return response;
}
catch (Response423& resp){
cur_try++;
engine::SleepFor(retry_wait_ms);
std::make_exception_ptr(resp);
}
}
std::rethrow_exception(std::current_exception());
}
Тебе нужно использовать возвращаемое значение std::make_exception_ptr и сохранить его куда-то, чтобы потом перевыбросить
Обсуждают сегодня