Jetez un coup d'oeil que l'extrait de code suivant:`return value 'à partir de Constructor Exception en Java?
A a = null
try {
a = new A();
} finally {
a.foo(); // What happens at this point?
}
On suppose que le constructeur de A lance une exception d'exécution. A la ligne marquée, suis-je toujours assuré d'obtenir une exception NullPointerException, ou foo() sera invoqué sur une instance semi-construite?
Par conséquent, écrivez-le comme 'final A a = new A(); essayez {...} enfin {a.foo(); } '. Et si vous avez besoin d'une exception, ajoutez ** un autre ** essayez de bloquer le lot. –
ou si vous n'êtes pas sûr de l'état de la référence 'a' dans le bloc finally, enveloppez juste' a.foo() 'avec' (si un! = Null) ' –