Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Vista previa

Cuando algo sale mal

Esta es la primera página de la lección. Léela y prueba las actividades. El resto está en el curso completo.

40 minutos

Pides la edad y escriben una palabra

Tu programa pregunta la edad. Una persona escribe "diecisiete" con letras. Otra reparte la cuenta entre cero amigos.

El programa intenta seguir y se rompe. Java avisa con un error y se para.

Hoy aprendes a leer ese aviso y a evitar que tu programa se pare.

Palabras clave

PalabraQué significaEjemplo
ExcepciónEl aviso que lanza Java cuando algo sale mal mientras el programa funciona.NumberFormatException
tryEl bloque donde pones el código que puede fallar.try { ... }
catchEl bloque que se ejecuta si el try falla. Dice qué hacer.catch (NumberFormatException e)
finallyUn bloque que se ejecuta siempre, haya fallado o no.finally { ... }
throwLa orden con la que tú lanzas una excepción.throw new IllegalArgumentException("...")

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un programa que se rompe

Una excepción es un aviso de Java. Dice que no pudo hacer lo que le pedías.

Si nadie la atiende, el programa se para en esa línea. Las líneas siguientes ya no se ejecutan.

Prueba a ejecutar el código de abajo y lee el mensaje.

Pruébalo: el programa se rompe

Código: java
public class Main {
    public static void main(String[] args) {
        System.out.println("Voy a leer la edad.");

        // "diecisiete" no es un número: Java lanza una excepción aquí.
        int age = Integer.parseInt("diecisiete");

        // Esta línea nunca llega a ejecutarse.
        System.out.println("Tienes " + age + " años.");
    }
}

Probar y atrapar

Con try dices: "intenta esto". Con catch dices: "si falla, haz esto otro".

Entre paréntesis de catch va el tipo de error que atrapas. Así el programa no se para: sigue después del bloque.

Con finally pones lo que se hace siempre.

Pruébalo: leer una edad con cuidado

Código: java
public class Main {
    static int readAge(String text) {
        try {
            return Integer.parseInt(text);
        } catch (NumberFormatException e) {
            System.out.println("\"" + text + "\" no es un número.");
            return -1;
        } finally {
            System.out.println("Fin de la lectura.");
        }
    }

    public static void main(String[] args) {
        System.out.println(readAge("17"));
        System.out.println(readAge("diecisiete"));
    }
}

Ejemplo resuelto: qué pasa en cada llamada

Llamada¿Falla el try?Qué escribe, en orden
readAge("17")NoFin de la lectura. y después 17
readAge("diecisiete")Sí, no es un número"diecisiete" no es un número., Fin de la lectura. y después -1

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Repaso rápido

Inténtalo

Repaso rápido

3 preguntas
Pruébalo: tus respuestas se corrigen aquí y después se olvidan. Inicia sesión si quieres que se guarde tu puntuación y continuar donde lo dejaste.Iniciar sesión para guardar tu puntuación

Tus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.

La lección continúa

9 partes más de esta lección están en el curso completo, con los ejercicios y la comprobación final. Una cuenta te da todo.