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

Vista previa

Leer los errores

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

30 minutos

Un mensaje en rojo

Pulsas Ejecutar y salen letras rojas. Muchos alumnos cierran la ventana sin leer.

Pero ese mensaje es el mejor amigo de un programador. Dice dónde falla el programa y por qué.

Hoy aprendes a leerlo. No hace falta saber inglés: solo tres cosas que mirar.

Palabras clave

PalabraQué significaEjemplo
Mensaje de errorEl texto que escribe Java cuando algo falla.error: cannot find symbol
LíneaEl número de la línea donde Java encontró el fallo.Main.java:4
Error de compilaciónUn fallo que Java encuentra antes de ejecutar. El programa no arranca.Falta un punto y coma
ExcepciónUn fallo que ocurre con el programa en marcha. El programa se para.Dividir entre cero
Error lógicoEl programa funciona, pero da un resultado equivocado.Un descuento que sube el precio
CausaLa razón del fallo.Escribiste goal y no goals

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

Tres cosas que mirar

Java escribe sus mensajes en inglés. No pasa nada. Busca estas tres cosas:

  1. El número de línea, por ejemplo Main.java:3.
  2. La palabra que sigue a error, que dice la clase de fallo.
  3. La flecha ^, que señala el sitio exacto.

Pruébalo: lee este error

Código: java
public class Main {
    public static void main(String[] args) {
        int total = 5 + 3
        System.out.println(total);

        // Este código tiene un error a propósito.
        // Ejecuta y busca: el número de línea y la flecha.
        // Arréglalo y ejecuta otra vez.
    }
}

El truco: mira la línea de antes

Java dice la línea donde se dio cuenta del fallo. A veces el fallo está en la línea anterior.

Con el punto y coma pasa justo eso. Java llega a la línea siguiente y entonces ve que algo falta.

Si no ves nada en la línea del mensaje, mira la de arriba.

Los mensajes más comunes

Mensaje de JavaQué significaCómo se arregla
';' expectedFalta un punto y coma.Ponlo al final de la línea.
cannot find symbolJava no conoce ese nombre.Mira si lo escribiste igual que arriba.
incompatible typesMetes un dato donde no cabe.Cambia el tipo o el valor.
possible lossy conversionUn decimal no cabe en un int.Usa double.
missing return statementFalta devolver un valor.Añade return.

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

Pruébalo: un nombre mal escrito

Código: java
public class Main {
    public static void main(String[] args) {
        int goals = 3;
        System.out.println("Goles: " + goal);

        // Lee el mensaje: cannot find symbol.
        // La palabra symbol dice cuál es el nombre. Corrígelo.
    }
}

Errores con el programa en marcha

Algunos fallos no se ven al compilar. Aparecen cuando el programa ya está funcionando.

Java los llama excepciones. Empiezan con Exception in thread "main". La palabra siguiente dice qué pasó. Debajo, at Main.main(Main.java:5) te da la línea.

Pruébalo: dividir entre cero

Código: java
public class Main {
    public static void main(String[] args) {
        int sweets = 12;
        int friends = 0;
        System.out.println("Preparando el reparto...");
        System.out.println(sweets / friends);
        System.out.println("Reparto terminado");

        // Mira qué líneas se escriben y cuáles no.
        // Pon friends = 4 y ejecuta otra vez.
    }
}

El error que no avisa

Hay un tercer tipo y es el peor. El programa compila y se ejecuta. Pero el resultado está mal.

Java no puede avisarte: no sabe qué querías. Tú tienes que comprobar el resultado.

Una buena costumbre es calcular el resultado a mano antes de ejecutar.

Pruébalo: ¿cuánto pagas?

Código: java
public class Main {
    public static void main(String[] args) {
        double price = 20;
        // Descuento del 10 %: pagas el 90 % del precio.
        double toPay = price * 0.1;
        System.out.println("Pagas " + toPay + " euros");

        // Debería salir 18.0, pero sale otra cosa.
        // Encuentra el fallo y corrígelo.
    }
}

Ejemplo resuelto: los tres tipos de error

TipoCuándo apareceQuién lo avisaEjemplo
De compilaciónAntes de ejecutarJava, con un mensajeFalta un ;
ExcepciónCon el programa en marchaJava, con un mensaje12 / 0
LógicoAl ver el resultadoSolo túPagar 2 euros y no 18

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

La lección continúa

4 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.