C# 6.0 (C# vNext) 新功能之:Exception-Handling Improvements

來源:互聯網
上載者:User

標籤:c#

在 C# 6.0 新功能裹的異常處理,有兩個改進:
  • 非同步處理(async and await)可以在 catch block 裹使用了。在 C# 5.0 推出的 async and await,當時不可以用於 catch block,現在已經可以了。
  • 支援異常過濾 exception filtering
非同步處理的例子:
try{  WebRequest webRequest = WebRequest.Create("http://www.csdn.net");  WebResponse response = await webRequest.GetResponseAsync();  // ...}catch (WebException exception){  await WriteErrorToLog(exception);}

異常過濾,這算是讓 C# 跟上 Visual Basic .NET 和 F# 在這方面的支援。
如下例子:
try{    DoSomeHttpRequest();}catch (System.Web.HttpException e) if (e.GetHttpCode() == 400){    WriteLine("Not Found");}catch (System.Web.HttpException e) if (e.GetHttpCode() == 500){    WriteLine("Internal Server Error");}catch{    WriteLine("Generic Error");}

比較一下之前的寫法:
try{    DoSomeHttpRequest();}catch (System.Web.HttpException e){    switch (e.GetHttpCode())    {        case 400:            WriteLine("Bad Request");        case 500:            WriteLine("Internal Server Error");        default:            WriteLine("Generic Error");    }}





C# 6.0 (C# vNext) 新功能之:Exception-Handling Improvements

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.