Помогите разобраться
Есть следующий код и проблема заключается в том, что если URL-адреса (передаваемого в качестве request) не существует или он в данный момент не отвечает, то программа выкидывает Exception и на этом заканчивает работа, а мне необходимо, чтобы работа продолжалась, т.е. Exception появлился, в Logger записался, но работа продолжилась в обычном режиме, как так можно сделать?
public async Task<AuctionRequest> ProcessBidRequest(BidRequestModel requestModel, string endpoint, string protocol)
{
try
{
var requestString = JsonConvert.SerializeObject(requestModel);
using var request = new HttpRequestMessage(HttpMethod.Get, endpoint);
{
request.Content = new StringContent(requestString, Encoding.UTF8, "application/json");
}
request.Headers.Add("x-openrtb-version", protocol);
using var response = await _client.SendAsync(request);
if (!response.IsSuccessStatusCode)
throw new BadResponseException(response.ReasonPhrase);
var respString = await response.Content.ReadAsStringAsync();
if (respString.Length == 0)
throw new ArgumentException("The response is empty string.");
return new AuctionRequest(requestModel, JsonConvert.DeserializeObject<BidResponseModel>(respString), protocol);
}
catch (Exception ex)
{
_logger.LogWarning(ex.Message);
throw ex;
}
}
Сам метод вызвается при переборе массива, вот часть кода, которая отвечает за вызов данного метода
int k = 0;
foreach (var advert in rtb_partners)
{
string[] address = { //Список URL-адресов };
bids[i++] = ProcessBidRequest(bidRequest, address[k++], protocolVersion);
}