У меня есть следующий код:
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
ОК, это запрещено по какой-либо причине, но каков правильный шаблон кода здесь?
EDIT:
Хорошей новостью является то, что С# 6.0, скорее всего, позволит ждать вызовов как в catch, так и в окончательных блоках.