在C++中,以下示例之间有什么区别?
重新抛出指针:
catch (CException* ex)
{
throw ex;
}
Run Code Online (Sandbox Code Playgroud)
简单的重新投掷:
catch (CException* ex)
{
throw;
}
Run Code Online (Sandbox Code Playgroud)
捕获重新抛出时,堆栈跟踪是否会有所不同?
是.基本上,你是在第一种情况下自己抛出物体.看起来你自己throw ex在行中生成了异常.在第二种情况下,您只是让原始对象在调用堆栈中上升(从而保留原始调用堆栈),这些是不同的.通常,你应该使用throw;.
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |