Tome una mirada que el siguiente fragmento de código:`valor de retorno 'de Constructor Exception en Java?
A a = null
try {
a = new A();
} finally {
a.foo(); // What happens at this point?
}
Supongamos que el constructor de la a lanza una excepción de tiempo de ejecución. En la línea marcada, ¿siempre tengo la garantía de obtener una NullPointerException, o se invocará a foo() en una instancia a medio construir?
Por lo tanto, escríbalo como 'final A a = new A(); prueba {...} finalmente {a.foo(); } ' Y si necesita una excepción atrapada, agregue ** otro ** intente bloquear alrededor del lote. –
o si no está seguro del estado de la referencia 'a' en el bloque finally, simplemente ajuste' a.foo() 'con' (if a! = Null) ' –