J'ai l'impression que les 2 codes sont identiques, mais j'imagine qu'il y a forcément une différence, sinon, finally n'existerait pas... J'ai cherché sur le net, mais rien de très clair à ce sujet.
<hr>
L'instruction apres le finally n'est pas appelée, pourtant, celle dans le finally l'est.
Le finally est la pour t'assurer que le bloc d'instruction qu'il contient est toujours appelé.
Autre exemple : si tu met un return dans ton try ou ton catch, ou si une exception n'est pas gérée dans ta méthode (enleve le catch de la méthode test de mon exemple), le finally est quand meme appelé, et pas le code suivant.
Donc pour etre plus explicite, le finally est appelé quoiqu'il arrive, ce qui est un comportement crucial pour fermer un fichier ouvert, clore une connexion a une base de données, liberer et nettoyer les ressources, ...