Ожидание в блоке перехвата

У меня есть следующий код:

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 .

82
задан svick 10 August 2014 в 10:44
поделиться