相关疑难解决方法(0)

709
推荐指数
11
解决办法
17万
查看次数

使用arg捕获的异常抛出和抛出有什么区别?

想象一下两个相似的代码片段:

try {
  [...]
} catch (myErr &err) {
  err.append("More info added to error...");
  throw err;
}
Run Code Online (Sandbox Code Playgroud)

try {
  [...]
} catch (myErr &err) {
  err.append("More info added to error...");
  throw;
}
Run Code Online (Sandbox Code Playgroud)

这些是否实际相同,或者它们是否以某种微妙的方式不同?例如,第一个是否导致复制构造函数运行,而第二个可能重用相同的对象来重新抛出它?

c++ exception try-catch throw

21
推荐指数
2
解决办法
6250
查看次数

在C++中,"throw"和"throw ex"之间有区别吗?

我想问这个问题(也在这里),但这次是关于C++的.

C++之间的区别是什么?

try { /*some code here*/}
catch(MyException& ex)
{ throw ex;} //not just throw
Run Code Online (Sandbox Code Playgroud)

try {  /*some code here*/}
catch(MyException& ex)
{ throw;} //not throw ex
Run Code Online (Sandbox Code Playgroud)

它只是在堆栈跟踪中(在C++中,在任何情况下都不是C#或Java中的标准)?

(如果它有任何区别,我使用MSVS 2008.)

c++ exception-handling

18
推荐指数
4
解决办法
5658
查看次数