Le bloc finally est-il toujours exécuté en Java ? Analysons les nuances
Bonjour à tous ! Je suis un développeur Java débutant, et j'ai une confusion concernant le bloc finally. J'ai lu que finally est toujours exécuté, qu'une exception soit levée ou non. Mais en pratique, j'ai rencontré plusieurs situations où cela ne semble pas être le cas.
Voici un exemple de code que j'ai écrit pour tester :
```java
public class FinallyTest {
public static void main(String[] args) {
System.out.println("Résultat : " + testFinally());
}
public static int testFinally() {
try {
System.out.println("Dans le bloc try");
return 1;
} catch (Exception e) {
System.out.println("Dans le bloc catch");
return 2;
} finally {
System.out.println("Dans le bloc finally");
return 3; // C'est ce qui me trouble
}
}
}
```
Je m'attendais à ce que la méthode retourne 1 (depuis try), mais elle a retourné 3 ! Donc, finally a redéfini le return ? Ou est-ce que je ne comprends pas quelque chose ?
De plus, j'ai entendu dire que si dans le