SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • NYLON Video

    NYLON Video

    11 Aralık 2006
  • pissengehen

    pissengehen

    26 EYLÜL 2006
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006