다음 코드가 있습니다.
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이 catch 및 finally 블록 모두에서 await 호출을 허용한다는 것 입니다.