Tipos de errores en Programación

En esta entrada veremos los posibles errores que se puede dar cuando programamos y bueno este post surge de una equivocación mía en el tutorial ENTRADA DE DATOS EN JAVA UTILIZANDO LA CLASE SCANNER en dónde puse por equivocación compilación en vez de ejecución y que gracias a la ayuda de un lector pude corregirlo, bueno es que hay algunos tipos de errores en programación con los que nos podemos encontrar cuando desarrollamos aplicaciones y aclarar que este tipo de errores no solamente se dan en Java si no en cualquier lenguaje de programación.

Hay tres tipos de errores que nos friegan la vida cuando programamos y más aún cuando estamos empezando este mundo tan fascinante como es el de la programación, que en muchas ocasiones por más sencillos que estos sean, en algunos casos pasamos horas e incluso días buscando la solución y aunque esta entrada no trata de tips para solucionarlos, si voy ha mencionar su clasificación utilizando ejemplos para ser más claro y que se pueda entender.

1. Errores en tiempo de compilación

Los errores de compilación ocurren porque la sintaxis del lenguaje no es correcta, de cajón este tipo de errores no permiten que la aplicación se ejecute, por ejemplo:

  • Olvidarnos de un punto y coma al final de una sentencia.
  • No cerrar llaves en algún bloque de código, método, clase o en alguna estructura de control.
  • Repetir variables con el mismo nombre aunque sean de diferente tipo.
  • Asignar en una variable otra variable con tipo de dato diferente: es decir si tengo una variable String y su valor lo asigno en una variable de tipo int, en este caso el compilador me va dar un error de conversión de tipos y esto no va dejar que la aplicación compile, incluso un error parecido se puede dar en variables de grupos del mismo tipo, por ejemplo asignar el valor de un tipo int en un tipo short.

De forma general este tipo de errores son de sintaxis. Afortunadamente los IDE como Eclipse, Netbeans ayudan mucho a reconocerlos y nos dan una idea de lo que puede estar pasando para de esta manera corregirlos incluso en algunos casos los resuelven. 

Para entender mejor los errores en tiempo de compilación crea un proyecto, luego una clase (debe tener habilitado el método principal main) y dentro del método principal main copia el siguiente código desde la línea 8 hasta la 22. 

Analizando el código

En el código anterior existen 4 errores en tiempo de compilación, el primero en la línea 10, ya que estoy intentando guardar un valor de una variable de tipo String en una variable de tipo entero (int), el segundo error se da en la línea 14 dado que estoy intentando almacenar una variable de tipo int en una variable de tipo short (int tiene un mayor rango que short no soporta), el tercer error está en la línea 16 puesto que estoy repitiendo el nombre de la variable valor y aunque es de diferente tipo el compilador me dice que está duplicada, el último error se da en la línea 21, para esto debes comentar todo el código anterior desde la línea 8 hasta la línea 16, pese a que ambas variables son de tipo int este error se da porque intento asignar en la variable mayor el valor de la variable menor si haberla inicializado. 

2. Errores en tiempo de ejecución

Estos errores ocurren cuando la aplicación se está ejecutando, imaginate que cuando estás haciendo la presentación o probando tu aplicación en público o frente a tu profesor y de repente pummm la aplicación explota (se cuelga) por lo general a este tipo de errores se los conoce como errores de compilación, ahora, por qué ocurren estos errores?, bueno, hay muchos factores desde los más básicos como por ejemplo:

  • El usuario ingresa valores diferentes a los que la aplicación recibe
  • Acceder a una posición en un arreglo la cual no existe.
  • Almacenar cadenas donde se debe almacenar números
  • Divisiones por cero.
  • Digamos que en una aplicación móvil consuma datos de un servicio web y que al momento de consumir esos datos no haya conexión a internet, esto hace que la aplicación se cuelgue.

Esos algunos ejemplos pero me imagino que hay muchos más, a continuación describo los más básicos.

Analizando el código

De los muchos que pueden darse en una aplicación, en el código existen 2 errores en tiempo de compilación , y bueno el primero error se da en la línea 9 y aunque aparentemente el programa a simple vista se ve bien, el error se da en la ejecución del programa puesto que estoy intentando almacenar en una posición del arreglo que no existe, recordemos que el tamaño de un arreglo se define como n-1, en el caso del ejemplo para el arreglo miArreglo sólo podríamos acceder o almacenar valores hasta la posición 4.>

El segundo error se da en la línea 13, para ver este error debes comentar las líneas 8 y 9, este error se da porque estoy dividiendo el valor de la variable sumaNotasExamenes para la variable numeroExamenes que tiene un valor de cero y esta es una operación no permitida para la Máquina Virtual de Java.

Recuerda que para ver los errores en tiempo de compilación debes ejecutar el programa.

3. Errores lógicos

Estos son los más difíciles de detectar y corregir y pues bueno porque digo que son difíciles, es que con este tipo de errores la aplicación compila y se ejecuta de forma normal, pero, y entonces dónde está el error? El error se da porque la aplicación no muestra los resultados esperados digamos que ya hice el algoritmo y el resultado que debo obtener es 10, pero en la aplicación obtengo 5 o lo peor de todo que de seguro te a pasado, que escribes el código haces pruebas y los resultados son correctos subes a producción y resulta que para un caso particular no se obtuvo el resultado esperado.

Pues en estos casos el problema son errores lógicos que a fin de cuentas estos ocurren por el mal diseño del algoritmo de la aplicación

Para terminar también mencionar que otro error de tipo lógico también ocurre cuando colocamos punto y coma después de una sentencia if o for y aunque parezcan errores tan obvios, se dan cuando estamos empezando a programar, como se puede ver a continuación lo que debería imprimir  la variable i que son los números del 0 hasta el 4, imprime sólo el número 5.

A continuación dejo un video como complemento a los ejemplos anteriores.

Consejos del buen Programador

  • Tener muy cuenta las divisiones por cero, en cuanto a los arreglos no acceder a posiciones que no  existen.
  • Hacer uso de excepciones y validaciones cuando se tenga en cuenta que el usuario puede ingresar valores diferentes a los que se puede recibir la aplicación.
  • Cuando diseñemos un algoritmo tener en cuenta todos los escenarios posibles que pueda tomar la aplicación durante su ejecución.
  • Finalmente como dice el dicho divide y vencerás: una buena forma de contrarrestar los errores de tipo lógico es dividir algoritmos grandes y complejos en tareas pequeñas de forma que el código se más legible y cualquier error de tipo lógico se lo pueda depurar fácilmente.

Te toca el turno, dime cuáles son los tipos de errores que mas has cometido, compilación, ejecución o lógicos? 

Full Stack Developer, JavaScript, PHP, Java, Spring, Laravel, Vuejs, Blogger, aprendiendo y compartiendo conocimientos. Cursos de Programación Web en: https://programacionfullstack.com/

Artículos Recomendados

2 Thoughts to “¿Cuáles son los tipos de errores más comúnes en Programación?”

  1. Luis

    Muy buen post.

    Por acotar que para los errores lógicos hoy en día resulta de mucha utilidad la ejecución en modo debug el cual poseen casi todos los lenguajes de cuarta generación y java por supuesto no es la excepción, ya sea en una app de escritorio o una webApp; los IDEs como eclipse y netbeans nos permiten aprovechar esta funcionalidad de depuración. Esto ayuda mucho para inspeccionar los valores de las variables en cualquier punto de ejecución.
    En el siguiente enlace dejo un ejemplo muy ilustrativo: http://chuwiki.chuidiang.org/index.php?title=Empezando_con_el_debugger_de_eclipse

    1. Elivar Largo

      Así es Luis, gracias por el aporte, por lo general esto se hacía manualmente y nos lo enseñaban cuando estábamos empezando a programar, después de hacer el algoritmo religiosamente se debía hacer ejecuciones manuales o corridas manuales pero a medida que aprendemos se nos olvida este paso que es muy importante para detectar errores lógicos y pues hoy en día los IDEs no ayudan muchísimo con este tipo de errores ya que como mencionas al utilizar el modo debugger podemos ir ejecutando paso a paso un programa y observando el comportamiento que toma para diferentes escenarios, reduciendo tiempo a la hora de hacer pruebas y detectando errores con mayor facilidad.

Dejar un Comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.