Как обрабатывать определенные c ошибки HttpClient - PullRequest
0 голосов
/ 05 августа 2020

Когда HttpClient выдает исключение при попытке получить страницу, он возвращает HttpRequestException. Это исключение действительно не имеет ничего общего с категоризацией ошибки, кроме сообщения, поэтому единственный способ обработки ошибок, который я вижу, выглядит так:

try
{
    HttpResponseMessage response = await client.GetAsync("http://www.example.com/");
    // ...
}
catch (HttpRequestException e)
{
    if(e.Message == "Name or service not known")
    {
       HandleNotKnown();
       return;
    }
    
    if(e.Message == "Some other specific message")
    {
       HandleOtherError();
       return;
    }
    
    // ... etc
}

Мне не нравится это делать, потому что я чувствую, что в какой-то момент текст ошибки может измениться в обновлении и сломать мой код.

Есть ли лучший способ обрабатывать определенные c ошибки с помощью HttpClient?

1 Ответ

0 голосов
/ 05 августа 2020

HttpRequestException наследуется от Exception и поэтому имеет свойство InnerException

введите описание изображения здесь

Gets the Exception instance that caused the current exception.

Так что проверьте это исключение для более подробной информации.

...