Ho il codice seguente:
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) );
}
catch
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) );
}
Fondamentalmente voglio scaricare da un URL e quando fallisce con un'eccezione voglio scaricare da un altro URL. Entrambi i tempi sono asincroni ovviamente. Tuttavia il codice non viene compilato, a causa di
errore CS1985: impossibile attendere nel corpo di una clausola catch
OK, è vietato per qualsiasi motivo, ma qual è il modello di codice corretto qui?
MODIFICARE:
La buona notizia è che C # 6.0 consentirà probabilmente le chiamate in attesa sia nei blocchi catch che in quelli finali .