Tengo una pregunta tonta. He leído este artículo sobre std :: excepción http://www.cplusplus.com/doc/tutorial/exceptions/catching std :: exception by reference?
En catch (exception& e)
, que dice:
Hemos colocado un controlador que atrapa los objetos de excepción por referencia (nótese el signo & después del tipo), por lo que este llama también clases derivadas de la excepción, como nuestro myex objeto de clase myexception.
¿Esto significa que al usar "&" también puede detectar la excepción de la clase principal? Pensé que & está predefinido en std :: exception porque es mejor pasar e (std :: exception) como referencia que el objeto.
No entiendo su último párrafo. Pasar por referencia no tiene nada que ver con las excepciones y es fundamental en C++ para permitir el polimorfismo en tiempo de ejecución. –
La respuesta es no: los objetos que puede capturar deben derivarse del tipo de excepción que está capturando, como mencionó en su publicación. Esto exhibe la relación IS-A. No puede atrapar una clase para padres si solo especifica niños en las cláusulas catch. – Chris