15 Ocak 2012, Pazar
Catch bloÄŸu bekliyor
Aşağıdaki kodu var:
WebClient wc = new WebClient();
string result;
try
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) );
}
catch
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) );
}
Temelde bir URL den indirmek istiyorum ve bir istisna ile başarısız olduğunda başka bir URL den indirmek istiyorum. Tabii ki her ikisi de zaman zaman uyumsuz. Kodu ancak, çünkü . derleme değil
hata CS1985: catch vücut bekliyor tümcesi Olamaz
TAMAM, sebebi ne olursa olsun ama doğru kod desen burada ne için yasak?
DÜZENLEME:
İyi haber C# 6.0 will likely allow await calls both in catch and finally blocks.
CEVAP
15 Ocak 2012, Pazar
Bu kodu bir bayrak kullanarak: catch
blok await
taşımak için yeniden yazabilirsiniz
WebClient wc = new WebClient();
string result = null;
bool downloadSucceeded;
try
{
result = await wc.DownloadStringTaskAsync( new Uri( "http://badurl" ) );
downloadSucceeded = true;
}
catch
{
downloadSucceeded = false;
}
if (!downloadSucceeded)
result = await wc.DownloadStringTaskAsync( new Uri( "http://fallbackurl" ) );
Bunu PaylaÅŸ:
@- catch bloÄŸu Objective-c dene...
Eğer bir istisna asla atılır, hatta tr...
Bir alıcı birden fazla catch bloğu öze...
Try/catch bloğu özel durum oluşturuldu...
Neden't kapasiteli geri catch den...