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





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

  • 相关阅读:
    并发编程 进程
    计算机的发展史和操作系统简介
    subprocess和struct模块
    socket编程
    面向对象进阶 反射
    类的内置方法
    常用模块(hashlib,configparser,logging)

    面向对象封装 classmethod和staticmethod方法
    面向对象 继承补充和多态
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4889823.html
Copyright © 2011-2022 走看看