Esta fue una pregunta de entrevista mía.excepción manejo de un constructor
Sorprendentemente Nunca había pensado en esta pregunta un poco a mí mismo.
¿Podemos tener manejo de excepciones dentro de un constructor C++?
en tiempo verbal y no pensaba mucho, dije "sí, probablemente podríamos hacerlo en un constructor.leturas dicen que estamos asignando algo de memoria utilizando un nuevo operador a un miembro del puntero y arroja una mala excepción de asignación, de esta manera hay una posibilidad de excepciones, habiendo resucitado"
Luego, más tarde pensé que los constructores no pueden devolver un value.So ¿cómo una excepción dentro de un constructor caught.now que estoy pidiendo esto a mí mismo!
¿Alguien puede ayudarme a salir de esta confusión?
Usted podría detectar la excepción en el código de llamada, no en el constructor. – helpermethod
Las excepciones no se devuelven de la misma forma que los valores de retorno, saltan la pila al primer bloque catch apropiado, por lo que aunque no se puede devolver un valor del constructor, se puede lanzar una excepción. – forsvarir
@Helper Método: si hubiera asignado memoria en el constructor definitivamente querría atrapar la excepción en el constructor para poder desasignar la memoria (y luego probablemente volver a lanzarla). Pero es más inteligente que el objeto aloje dinámicamente como máximo un objeto, por lo que no es necesario hacer este tipo de limpieza manual. –