Tôi có đoạn mã sau:Chờ trong khối catch
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync(new Uri("http://badurl"));
}
catch
{
result = await wc.DownloadStringTaskAsync(new Uri("http://fallbackurl"));
}
Về cơ bản tôi muốn tải về từ một URL và khi nó không thành công với một ngoại lệ Tôi muốn tải về từ URL khác. Cả hai thời gian không đồng bộ của khóa học. Tuy nhiên mã không biên dịch, vì
lỗi CS1985: Không thể chờ đợi trong cơ thể của một mệnh đề catch
OK, nó bị cấm vì lý do gì nhưng mã mẫu đúng là những gì ở đây?
EDIT:
Các tin tốt là C# 6.0 will likely allow await calls both in catch and finally blocks.
Cảm ơn svick, đó là khá rõ ràng, bất cứ điều gì tốt hơn, kết nối hơn để async? –
Tôi không nghĩ rằng bất cứ điều gì như thế tồn tại. – svick
Trong trường hợp của bạn, bạn cũng có thể sử dụng nhiệm vụ tiếp tục. Nhưng mã trong câu trả lời 'svick' là sạch hơn so với mã sử dụng sự tiếp tục. –