Encontré que hay tres formas de atrapar una excepción, ¿cuáles son las diferencias?excepción de captura por puntero en C++
1) coger por valor;
2) captura por referencia;
3) captura por puntero;
Solo sé que catch by value invocará dos copias del objeto, catch by reference invocará uno. Entonces, ¿qué hay de atrapar por puntero? ¿Cuándo usar la captura por puntero? Además de arrojar un objeto, ¿puedo arrojar un puntero a un objeto como este?
class A {}
void f() {
A *p = new A();
throw p;
}
Usted puede __not__ atrapar una excepción con un puntero. Puede ver una excepción que pasa a ser un puntero. El problema es que A y A * son dos tipos completamente diferentes. Si arrojas un puntero a A, solo puedes capturar valor o referencia. Pero es un A * que está atrapando por valor o referencia no como A. –