Al intentar crear un programa-aplicación se nos presentan 3 tipos de errores:
-
Errores de sintaxis:
- Por ejemplo al tipear mal una sentencia, un problema que nuestra IDE facilmente detecta y nos advierte con una linea roja debajo y hasta suguiere como solucionarlo.
-
Errores en tiempo de ejecución:
-
Cuando la sintaxis esta bien puesta pero la máquina virtual no puede ejecutar nuestras operaciones porque se le pide algo que no puede hacer como por ejemplo mostrar un indice de un array por el cual no esta definido o asignarle a un objeto un espacio de memoria que es nulo en lugar de de asignarle al espacio nulo lo que vale el objeto en su definicion clase.
Algunos problemas puede identificarlo el IDE o nos arroja el nombre del problema y estos se tratan con bloques try-catch
-
Cuando la sintaxis esta bien puesta pero la máquina virtual no puede ejecutar nuestras operaciones porque se le pide algo que no puede hacer como por ejemplo mostrar un indice de un array por el cual no esta definido o asignarle a un objeto un espacio de memoria que es nulo en lugar de de asignarle al espacio nulo lo que vale el objeto en su definicion clase.
-
Errores de lógica
- No hay errores de tipeo, no hay errores de ejecucion, pero "simplemente el programa no hace lo que yo quiero que haga".
Para este tipo de problema existe el debug (Depuración) que permite compilar, ejecutar el programa y pararlo cuando se lo indiquemos para poder analizar paso a paso los valores de las variables y objetos para poder detectar algun problema.
Para hacer uno o varios Breakpoint no hace falta ser rafa Nadal, basta con hacer click izquierdo sobre el número de la linea donde queremos que el programa se detenga para ver que valores obtiene cada variable del programa (Es siempre asi en cualquier IDE).
Luego podemos continuar el programa hasta el siguiente breakponit si lo hubiera o lo termina de ejecutar hasta el fin.
Me imagino que quiero crear una aplicacion que sume 2 números dados cualesquiera y soy tan jodido que en mi método en lugar de poner el signo de sumar "+", me distraigo y pongo el de restar "-", claramente despues de unas prueba noto que 2 y 2 son 0 en lugar de 4. Mi código es el siguiente:
- package Depurar;
- import java.util.Random;
- /* @author {Darío José Zubaray} */
- public class Depurar {
- }
- public static int sumar(int num1, int num2){
- int aux = num1 - num2;
- return aux;
- }
- }
- Hay que tener en cuenta que java ejecuta nuestro codigo linea tras linea, hasta que en alguna de ellas nombre metodos o variables y salta a esas linea de codigo par a luego seguir.
- Tambièn podemos cambiar los valores de estas variables en tiempo de ejecución.