En C++, la duración de un objeto comienza cuando el constructor finaliza correctamente. Dentro del constructor, el objeto aún no existe.Excepciones en constructores
P: ¿Qué significa emitir una excepción de un constructor?
A: Significa que la construcción ha fallado, el objeto nunca existió, su vida útil nunca comenzó. [source]
Mi pregunta es: ¿Lo mismo vale para Java? ¿Qué sucede, por ejemplo, si entrego this
a otro objeto y luego falla mi constructor?
Foo()
{
Bar.remember(this);
throw new IllegalStateException();
}
¿Está bien definido? ¿Tiene Bar
ahora una referencia a un objeto no?
+1 - pero "fugas" se denomina (insegura) "publicación" en este caso; p.ej. en Bloch. También sería una buena idea explicar esto con más profundidad. –