可能重复:
在C++中通过指针捕获异常
我总是通过价值来捕捉异常.例如
try{
...
}
catch(CustomException e){
...
}
Run Code Online (Sandbox Code Playgroud)
但我遇到了一些相反的代码catch(CustomException &e).这是a)罚款b)错误c)灰色区域?
我发现有三种方法可以捕获异常,有什么区别?
1)按价值捕获;
2)引用参考;
3)用指针抓住;
我只知道按值捕获将调用该对象的两个副本,通过引用捕获将调用一个.那么指针捕获怎么样?什么时候用指针捕捉?除了抛出一个对象,我可以抛出一个像这样的对象的指针吗?
class A {}
void f() {
A *p = new A();
throw p;
}
Run Code Online (Sandbox Code Playgroud)