Всем привет, есть какой-то такой код
public async Task<List<AccountListView>> GetAsync()
{
try
{
return await TryGetAccountListAsync();
}
catch (UnauthorizedException)
{
await Context.Renew();
return await TryGetAccountListAsync();
}
}
private async Task<List<Model>> TryGetAccountListAsync()
{
var response = /*Запрос к серверу*/
if(!response.IsSuccessStatusCode) {
throw new UnauthorizedException();
} eles {
return response.ToModel();
}
}
Суть такая, пытаемся сделать запрос, если получаем что-то плохое то кидаем эксепшин, если эксепшин из-за того что токен устарел, то пытаемся обновить токен и повторить запрос. Как это сделать более красиво? Мне почему-то мой способ не заходит, потому что у меня уже есть 10 пар таких и это как-то не греет душу