Errores comunes en la programación con Java

Dirección original: http://java.about.com/cs/beginningjava/a/comm_errs.htm

Si ha estado trabajando con Java por algún tiempo, es seguro que habrá cometido estos errores al menos un par de veces. Los errores de programación en Java, así como en otros lenguajes, ocurren más que todo en la sintaxis y errores en la lógica. Los errores en la sintaxis son causados cuando el compilar Java (javac) no puede reconocer la sentencia. Esto causa que el compilador devuelva un mensaje de error, usualmente con una línea de código de referencia. También se conoce a los errores de sintaxis como errores en tiempo de compilación.

Los errores de lógica son conocidos como BUGS. Estos son los errores que nos tomarán tiempo hasta encontrarlos. Si damos a elegir, cualquier programador elegiría los errores en tiempo de compilación. A mi me ha tomado hasta varios días hacer el debug cuando suceden errores de lógica, y eso, usando todas las herramientas disponibles: archivos logs, mensajes System.out, debuggers, etc.

Los siguientes errores aparecen en la mayoría de programadores cada cierto tiempo, pero podemos verlo regularmente en el código de los programadores novatos.

Tenemos que cuidarnos de estos errores para evitarlos y pulir nuestro código.


  • El nombre de la Clase pública no coincide con el nombre del archivo
    Cada archivo .java puede contener sólo una Clase pública. El nombre de esa Clase pública debe coincidir exactamente con el nombre del archivo antes de la extensión .java, respetando incluso las mayúsculas y minúsculas. Por ejemplo, una Clase pública llamada MyClass debe estar en un archivo MyClass.java y no en myclass.java. Este es un error de sintaxis.

  • Una Clase no está en el directorio correcto
    Este error de sintaxis ocurre si el comando javac no puede encontrar un archivo .java en el directorio esperado. Si una Clase está en el paquete por defecto (no tiene la declaración del package en la primera línea), entonces esta Clase pertenece al directorio actual de trabajo o al directorio donde apunta el flag sourcepath del javac. Si una Clase está a un paquete, entonces pertenece a un subdirectorio debajo del directorio actual de trabajo o a un subdirectorio debajo del directorio donde apunta el flan sourcepath del javac. Por ejemplo, si existe una Clase llamada com.hello.HelloWorld entonces su nombre es HelloWorld y su paquete es com.hello. Si el flan sourcepath está configurada a c:src, entonces el archivo HelloWorld.java debe estar ubicado en el subdirectorio: c:srccomhello.

  • Usando equals contra la asignación ( == versus = )
    En Java este error puede ser incluso un error de lógica o sintaxis. Para comparar 2 referencias para igualarlas se usa el operador == (el operador de igualdad). Para asignar el valor de la derecha a la variable de la izquierda se usa el operador = (operador de asignación). Los programadores novatos a veces escriben: if (miValor = valorEsperado) Este código intenta evaluar el valorEsperado como un valor booleano en lugar de intentar la evaluación de igualdad entre miValor y valorEsperado. Si valorEsperado es del tipo booleano, entonces el código tendrá un error de lógica y probará si el valorEsperado es verdadero o falso. Si valorEsperado no es del tipo booleano, entonces el código lanzará un error de compilación debido a que la estructura if requiere un valor booleano que sea retornado de la comparación (miValor = valorEsperado), pero en Java el operador = siempre retorna el valor de la derecha.

  • Error en mayúsculas y minúsculas.
    Java es un lenguaje case sensitive, esto es que debemos respetar las mayúsculas y minúsculas. (miVar no es igual a mivar). Si hacemos referencia a un identificador que no está bien escrito entonces obtendremos un error de sintaxis.

  • Olvidar que los índices en Java empiezan en 0.
    Los índices de los arreglos de Java y las listas empiezan en 0, myArray[0], o myList.get(0). Asegurarse que su loop for no cause errores por este motivo. Si hacemos más loops de los que son posibles, entonces obtendremos el error: ArrayIndexOutBounds exception. Si hacemos menos loops de los requeridos, entonces tendremos un error de lógica.

  • NullPointerException
    El NullPointerException, la maldición de los programadores en Java. Los NullPointerExceptions son errores de lógica causados cuando un programa intenta acceder a métodos o atributos en una referencia que está nula. Si nuestro objeto no ha sido inicializado o ha sido establecido a null con el operador =, entonces la llamada el método o el acceso a uno de sus atributos no es válido.

Espero que esta lista corta de errores de código le ayude a pensar de manera defensiva a la hora de escribir código. Mientras más errores evitemos, entonces más productivos seremos, tanto en tiempo de desarrollo como también el código más refinado.



Nombre:

Email:

Comentario:

Aviso legal

Lo más buscado y visitado en Ciberaula

Masters: Master en Programación Web | Master en Diseño Gráfico | 3D Studio Max
Cursos: Curso Online de Excel | Curso Online de Access | Excel Basico | Excel Intermedio | Excel Avanzado | Excel para Big Data | Access Avanzado | Macros Excel | Microsoft Excel Financiero | Programación de Macros Excel con Visual Basic | Curso Online de Prevencion de Riesgos Laborales | Cursos de Prevencion de riesgos laborales | Curso Online de Atencion al Cliente | GNU/Linux | Curso de Java | Cursos de PHP | Curso de HTML | Curso de ASP.NET | Curso normas ISO | 3d Studio Max | 3d Studio Iluminación | 3d Studio Modelado | Curso de Ingles | Excel Online | funciones excel | Curso de Office | Curso Online de Eneagrama | curso online de diseño grafico | cursos de java online | curso de linux | Curso Online de Educación para la Igualdad de Oportunidades | Curso online de Contaplus | curso online de liderazgo |
Secciones: Formacion programada por las empresas | Programacion Orientada a Objetos | Cursos OnLine | Tutorial Linux | Lenguaje Java | Cursos SENCE | Cursos Bonificados | Cursos Online Bonificados | fundacion tripartita cursos | e learning cursos |
| sistema operativo linux | Cursos sence 2016 |
Recomendados: Deontologia | Cursos Gratuitos | Aula Virtual | Etica Profesional | Que es Word | Illustrator online | cursos bonificados 2016 | cursos bonificados para trabajadores |
POO Y Java: POO | J2EE | J2SE | Operadores logicos | Operadores Relacionales | Listas en Java | Abstraccion | Encapsulamiento |



Copyright 2014-2015 - Ciberaula ® - Reservados Todos los Derechos