zoukankan      html  css  js  c++  java
  • C# 6.0 (C# vNext) 的新功能:Exception-Handling Improvements

    于 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");
        }
    }





    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    iOS的几种动画使用
    iOS工程师必备技能
    网络数据的下载(NSUrlconnection异步下载和NSstring同步下载)和UI界面数据的刷新(都是抛弃第三方库的一些本质)
    GCD定时器
    iOS开发的小技巧
    站在巨人的肩膀上
    跳转系统设置相关界面的方法
    微信分享
    网站 、内容
    加水印
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4889823.html
Copyright © 2011-2022 走看看