• C# throw使用小区别


    来自<<.NET框架程序设计>>

    当我们抛出一个异常时, CLR会重新设置一个异常起始点。 CLR只记录最近一次异常抛出的位置。下面代码抛出一个异常,从而导致CLR重新设置该异常的起始点:

     void SomeMethod()

    {

        try

      {....}

        catch(Exception e)

        {

         ...

         throw e;   //CLR认为这里是异常的起始点

         }

    }

    相反,如果我们抛出一个异常对象, CLR将不会重新设置其堆栈的起始点,下面代码抛出一个异常,但不会导致CLR重新设置异常的起始点:

     void SomeMethod()

    {

        try

      {....}

        catch(Exception e)

        {

         ...

         throw;  //CLR不会重新设置异常的起始点

         }

    }

    以前一直看到throw 与throw e有什么不同的问法? 今天看到了确切的说法。 

  • 相关阅读:
    Ajax跨域解决实例
    关于tween.js测试介绍
    signal() 和 sigaction()
    信号概述
    监控文件事件
    栈和栈帧
    进程结构和内存布局
    关于文件I/o的原子操作
    查询Linux系统中glibc的版本
    IOPS和Throughput
  • 原文地址:https://www.cnblogs.com/whtydn/p/1639016.html
Copyright © 2020-2023  润新知