Sto tentando di gestire correttamente due diversi WebException
.Gestione corretta di due WebException
Fondamentalmente sono gestite dopo aver chiamato WebClient.DownloadFile(string address, string fileName)
per quanto ne so, finora non ci sono due che devo gestire, sia WebException
's:
- Il nome remoto non può essere risolto (cioè senza connettività di rete per accedere al server per scaricare il file)
- (404) file non nound (cioè il file non esiste sul server)
Potrebbero esserci di più ma questo è quello che ho trovato più importante finora.
Quindi, come devo gestirlo correttamente, dato che sono entrambi WebException
ma voglio gestire ciascun caso sopra in modo diverso.
Questo è quello che ho finora:
try
{
using (var client = new WebClient())
{
client.DownloadFile("...");
}
}
catch(InvalidOperationException ioEx)
{
if (ioEx is WebException)
{
if (ioEx.Message.Contains("404")
{
//handle 404
}
if (ioEx.Message.Contains("remote name could not")
{
//handle file doesn't exist
}
}
}
Come potete vedere sto controllando il messaggio per vedere che tipo di WebException è. Immagino che ci sia un modo migliore o più preciso per farlo?
Grazie
Indovinare la risposta è sulla falsariga di controllare lo stato di eccezione, come invece utilizzando l'eccezione Web, '(se wEx.Status == WebExceptionStatus.Something) {// handle} (se wEx.Status == WebExceptionStatus.SomethingElse {// handle that} ' – baron