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





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

  • 相关阅读:
    iphone6闪存检测
    knowledges address
    类linux系统/proc/sysrq-trigger文件功能作用
    iphone 6s pp助手 越狱
    C pointers
    ubuntu15.04 TLS
    ubuntu cenots 禁止本地登陆
    CentOS7
    CentOS7安全设置 yum-cron系统自动更新,firewalld防火墙简单使用
    SAS学习笔记之函数应用
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4889823.html
Copyright © 2020-2023  润新知