Avatar ·

¿El bloque finally siempre se ejecuta en Java? Analizando los matices

¡Hola a todos! Soy un desarrollador Java principiante y tengo confusión con el bloque finally. Leí que finally se ejecuta siempre, independientemente de si se lanza una excepción o no. Pero en la práctica me encontré con varias situaciones donde parece que no es así. Aquí hay un ejemplo de código que escribí para probar: ```java public class FinallyTest { public static void main(String[] args) { System.out.println("Resultado: " + testFinally()); } public static int testFinally() { try { System.out.println("En el bloque try"); return 1; } catch (Exception e) { System.out.println("En el bloque catch"); return 2; } finally { System.out.println("En el bloque finally"); return 3; // Esto es lo que me confunde } } } ``` Esperaba que el método devolviera 1 (de try), ¡pero devolvió 3! ¿Entonces finally sobrescribe el return? ¿O hay algo que no entiendo? Además, escuché que si en