L'exception gère la bonne façon pour WebClient.DownloadString
Je me demandais quelles sont les exceptions que je devrais me protéger lors de l'utilisation de WebClient.DownloadString
.
Voici comment je l'utilise, mais je suis sûr que vous les gars peuvent proposer les meilleures plus robuste de gestion des exceptions.
Par exemple, sur le dessus de ma tête:
- Pas de connexion internet.
- Serveur a renvoyé une erreur 404.
- Serveur a expiré.
Quelle est la meilleure façon de gérer ces cas et de les jeter à l'exception de l'INTERFACE utilisateur?
public IEnumerable<Game> FindUpcomingGamesByPlatform(string platform)
{
string html;
using (WebClient client = new WebClient())
{
try
{
html = client.DownloadString(GetPlatformUrl(platform));
}
catch (WebException e)
{
//How do I capture this from the UI to show the error in a message box?
throw e;
}
}
string relevantHtml = "<tr>" + GetHtmlFromThisYear(html);
string[] separator = new string[] { "<tr>" };
string[] individualGamesHtml = relevantHtml.Split(separator, StringSplitOptions.None);
return ParseGames(individualGamesHtml);
}
source d'informationauteur Only Bolivian Here
Vous devez vous connecter pour publier un commentaire.
Si vous attrapez
WebException
il doit gérer la plupart des cas.WebClient
etHttpWebRequest
jeter unWebException
pour tous HTTP erreurs de protocole (4xx et 5xx), et également pour les erreurs au niveau du réseau (déconnexion, hôte inaccessible, etc)Je ne suis pas sûr de comprendre ta question... tu ne Peux pas afficher le message d'exception?
Ne pas attraper l'exception de la
FindUpcomingGamesByPlatform
laisser bouillonner à l'appel de la méthode, de l'attraper, il y et afficher le message...J'utilise ce code:
Ici, je
init
le webclient dans l'événement chargéLe rappel
Grâce.
Selon la documentation MSDNle seul non-programmeur exception est
WebException
qui peut être déclenchée si: