代码之家  ›  专栏  ›  技术社区  ›  Aidan Ryan

重新抛出指针捕获的异常

  •  1
  • Aidan Ryan  · 技术社区  · 16 年前

    重新投掷指针 :

    catch (CException* ex)
    {
        throw ex;
    }
    

    简单的重新投掷 :

    catch (CException* ex)
    {
        throw;
    }
    

    2 回复  |  直到 16 年前
        1
  •  7
  •   Mehrdad Afshari    16 年前

    对。基本上,在第一种情况下,你自己扔物体。看起来您自己在 throw ex 线。在第二种情况下,您只是让原始对象在调用堆栈中向上移动(从而保留原始调用堆栈),这是不同的。通常,您应该使用 throw; .

        2
  •  -2
  •   martsbradley    16 年前

    我认为存在性能差异。第二个版本不会对异常进行临时复制。第一个将创建一个副本,因此seond是可行的方法。