Depuración: entender los errores en vez de tenerles miedo

Cómo leer un stack trace, los errores más comunes de Java, Python y JavaScript y cómo arreglarlos, y cómo usar el debugger.

Un error no es un fracaso: es el ordenador diciéndote exactamente qué le pasa y dónde. Aprender a leer ese mensaje es la habilidad que más te va a ahorrar tiempo en toda tu vida programando.

Cómo se lee un stack trace

El stack trace (traza de la pila) es la lista de llamadas que estaban activas cuando reventó el programa. Se lee de arriba abajo:

  • Primera línea: el tipo de error y un mensaje. Esto es lo que buscas en Google.
  • Líneas siguientes: el camino de llamadas. La primera que apunta a un archivo tuyo (no de una librería) es donde mirar.
  • El número de línea (Main.java:4, app.py, line 3) te lleva al sitio exacto.

Los errores más comunes

Elige uno para ver el mensaje real, por qué pasa y cómo se arregla:

El método: divide y vencerás

  1. Reproduce el error de forma fiable. Si no sabes cuándo pasa, no puedes arreglarlo.
  2. Lee el mensaje entero. De verdad. La respuesta suele estar ahí.
  3. Aísla. Comenta la mitad del código. ¿Sigue el error? Está en la otra mitad. Repite.
  4. Imprime valores. System.out.println(x), print(x), console.log(x) justo antes de la línea que falla. ¿Vale lo que crees?
  5. Un cambio cada vez. Si tocas cinco cosas y funciona, no sabes cuál era.

Diccionario rápido de errores

El debugger

Mejor que llenar el código de print: pon un breakpoint (punto de ruptura) en una línea y el programa se para ahí. Entonces puedes:

  • ver el valor de todas las variables en ese instante,
  • avanzar línea a línea (step over / step into),
  • ver la pila de llamadas.

En VS Code: pon el ratón a la izquierda del número de línea, aparece un punto rojo, y pulsa F5. En el navegador: pestaña Sources de las DevTools (F12).

Comprueba lo aprendido