Menu
Coddy logo textTech

Bloque Finally

Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 41 de 59.

El bloque finally contiene código que se ejecutará después de los bloques try-catch, ocurra o no una excepción. Se usa comúnmente para operaciones de limpieza como cerrar archivos o conexiones de base de datos.

Aquí está la estructura básica de un bloque try-catch-finally:

try {
   // Code that might throw an exception
} catch (ExceptionType e) {
   // Code to handle the exception
} finally {
   // Code that always executes
}

Veamos un ejemplo con un contador:

int counter = 0;
try {
   int result = 10 / 0;
   // Esto lanzará una excepción
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3;
   // Esto siempre se ejecutará
}

Después de ejecutar el código anterior, counter contiene:

3

challenge icon

Desafío

Fácil

Crea un método llamado processNumber que toma dos argumentos:

  1. Un String (number) para convertir a entero
  2. Un boolean (shouldThrow) que determina si debe lanzarse una excepción

El método debe:

  1. Inicializar una variable result en 0
  2. En el bloque try:
    • Si shouldThrow es true, divide 10 por 0
    • De lo contrario, convierte la cadena number a entero y almacénala en result
  3. En el bloque catch: establece result en -1
  4. En el bloque finally: suma 100 a result
  5. Devuelve result como cadena

Hoja de referencia

El bloque finally se ejecuta después de los bloques try-catch, independientemente de si ocurre una excepción. Se utiliza para operaciones de limpieza.

Estructura básica:

try {
   // Code that might throw an exception
} catch (ExceptionType e) {
   // Code to handle the exception
} finally {
   // Code that always executes
}

Ejemplo con contador:

int counter = 0;
try {
   int result = 10 / 0; // throws exception
   counter = 1;
} catch (ArithmeticException e) {
   counter = 2;
} finally {
   counter = 3; // always executes
}
// counter = 3

Pruébalo tú mismo

import java.util.Scanner;

public class Main {
    public static String processNumber(String number, boolean shouldThrow) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String number = scanner.nextLine();
        boolean shouldThrow = Boolean.parseBoolean(scanner.nextLine());
        
        System.out.println(processNumber(number, shouldThrow));
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo