Lecciones del módulo (1/2)
Los bloques try-catch
In Java, los errores que ocurren durante la ejecución de un programa se gestionan a través de las Excepciones. La gestión de excepciones permite interceptar situaciones anómalas y evitar que el programa termine abruptamente.
La estructura try-catch
Para gestionar una posible excepción, envolvemos el código de riesgo dentro de un bloque try. Si ocurre un error dentro del try, la JVM interrumpe la ejecución del bloque y busca un bloque catch correspondiente para manejar la excepción.
try {
int result = 10 / 0; // Genera un'eccezione ArithmeticException
System.out.println("Questo non verrà stampato");
} catch (ArithmeticException e) {
System.out.println("Si è verificato un errore aritmetico: " + e.getMessage());
}
El bloque finally
El bloque finally es opcional y siempre se ejecuta, independientemente de si se ha lanzado o no una excepción. Es ideal para liberar recursos o realizar operaciones de limpieza.
try {
System.out.println("Esecuzione logica");
} catch (Exception e) {
System.out.println("Errore");
} finally {
System.out.println("Questo blocco viene sempre eseguito");
}
Lanzar Excepciones: throw
Podemos lanzar intencionadamente una excepción usando la palabra clave throw, seguida de una nueva instancia de una clase de excepción.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Il punteggio deve essere compreso tra 0 e 100");
}
}
Pruébalo tú
Completa el código insertando un bloque try-catch para manejar una posible ArithmeticException derivada de la división a / b. En caso de error, imprime 'Error: division by zero'.
Mostrar pista
Inserta la operación de división dentro del bloque `try` y captura `ArithmeticException` imprimiendo el mensaje requerido.
Solución disponible después de 3 intentos
Completa el código implementando un bloque try-catch-finally. En el bloque try intenta convertir la cadena str en un entero usando Integer.parseInt. En el catch captura NumberFormatException e imprime 'Invalid number'. En el bloque finally imprime 'Finally'.
Mostrar pista
Escribe la estructura `try { ... } catch (NumberFormatException e) { ... } finally { ... }`.
Solución disponible después de 3 intentos
Completa el método checkAge lanzando una excepción IllegalArgumentException con el mensaje 'Underage' si la edad proporcionada es menor de 18 años.
Mostrar pista
Usa `if (age < 18)` y la palabra clave `throw new` para instanciar y lanzar la excepción.
Solución disponible después de 3 intentos