У меня есть следующий код:
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) );
}
catch
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) );
}
Обычно я хочу выполнить загрузку с URL-адреса, а в случае сбоя, за исключением исключения, я хочу загрузить с другого URL-адреса. Оба раза, конечно, асинхронно. Однако код не компилируется из-за ошибки
CS1985: невозможно ожидать в теле предложения catch
Хорошо, это запрещено по какой-либо причине, но какой здесь правильный шаблон кода?
РЕДАКТИРОВАТЬ:
Хорошая новость заключается в том, что C # 6.0, скорее всего, разрешит вызовы await как в блоках catch, так и в блоках finally .