Я впервые использую SonarQube для анализа кода. У меня есть один метод, как показано ниже.
public async Task<HttpResponseMessage> SendRequest(HttpRequestMessage httpRequest)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = null;
response = await client.SendAsync(httpRequest);
if (response.StatusCode == System.Net.HttpStatusCode.RequestTimeout || response.StatusCode == System.Net.HttpStatusCode.ServiceUnavailable)
{
//DoSomething
}
else
{
// DoSomethingElse
}
}
Теперь, когда я запускаю SonarQube, он указывает на условие if и показывает его как ошибку. Сообщение "'response' is null on at least one execution path."
. Как мне удалить эту ошибку. Означает ли это, что весь этот блок if/else должен быть заключен в другое условие if, например if (response != null){}
. Любая помощь/объяснение приветствуется.
await client.SendAsync(httpRequest)
возвращает значение null. Я бы предложил написатьif (response == null) { // DoUnspected Error }
перед проверкой его свойств (StatusCode) - person Cleptus   schedule 23.07.2018