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





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

  • 相关阅读:
    devops
    classloader
    webpack之个人理解
    java map
    前端性能资料
    kibana使用的lucene查询语法
    【转】关于JVM CPU资源占用过高的问题排查
    netstat命令
    使用LR11录制手机脚本
    jemeter逻辑控制器
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4889823.html
Copyright © 2011-2022 走看看