Eu tenho o seguinte código:
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) );
}
catch
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) );
}
Basicamente, quero fazer o download de um URL e, quando falha com uma exceção, quero fazer o download de outro URL. Ambos são assíncronos, é claro. No entanto, o código não compila, por causa de
erro CS1985: não é possível esperar no corpo de uma cláusula catch
OK, é proibido por qualquer motivo, mas qual é o padrão de código correto aqui?
EDITAR:
A boa notícia é que o C # 6.0 provavelmente permitirá chamadas de espera em blocos catch e finally .