次のコードがあります。
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 句の本文で待機できません
OK、何らかの理由で禁止されていますが、正しいコード パターンは何ですか?
編集:
幸いなことに、C# 6.0 では、catch と finally ブロックの両方で await 呼び出しが許可される可能性があります。