Você está na página 1de 4

Errores comunes en la programacin con Java

Si ha estado trabajando con Java por algn tiempo, es seguro que habr cometido estos errores al
menos un par de veces. Los errores de programacin en Java, as como en otros lenguajes,
ocurren ms que todo en la sintaxis y errores en la lgica. 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 lnea de cdigo de referencia. Tambin se
conoce a los errores de sintaxis como errores en tiempo de compilacin.
Los errores de lgica son conocidos como BUGS. Estos son los errores que nos tomarn tiempo
hasta encontrarlos. Si damos a elegir, cualquier programador elegira los errores en tiempo de
compilacin. A mi me ha tomado hasta varios das hacer el debug cuando suceden errores de
lgica, y eso, usando todas las herramientas disponibles: archivos logs, mensajes System.out,
debuggers, etc.
Los siguientes errores aparecen en la mayora de programadores cada cierto tiempo, pero
podemos verlo regularmente en el cdigo de los programadores novatos.
Tenemos que cuidarnos de estos errores para evitarlos y pulir nuestro cdigo.

El nombre de la Clase pblica no coincide con el nombre del archivo


Cada archivo .java puede contener slo una Clase pblica. El nombre de esa Clase pblica
debe coincidir exactamente con el nombre del archivo antes de la extensin .java, respetando
incluso las maysculas y minsculas. Por ejemplo, una Clase pblica 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 declaracin del
package en la primera lnea), 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 asignacin ( == versus = )


En Java este error puede ser incluso un error de lgica 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 asignacin). Los
programadores novatos a veces escriben: if (miValor = valorEsperado) Este cdigo intenta
evaluar el valorEsperado como un valor booleano en lugar de intentar la evaluacin de
igualdad entre miValor y valorEsperado. Si valorEsperado es del tipo booleano, entonces el
cdigo tendr un error de lgica y probar si el valorEsperado es verdadero o falso. Si
valorEsperado no es del tipo booleano, entonces el cdigo lanzar un error de compilacin
debido a que la estructura if requiere un valor booleano que sea retornado de la comparacin
(miValor = valorEsperado), pero en Java el operador = siempre retorna el valor de la derecha.

Error en maysculas y minsculas.


Java es un lenguaje case sensitive, esto es que debemos respetar las maysculas y
minsculas. (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 ms loops de los
que son posibles, entonces obtendremos el error: ArrayIndexOutBounds exception. Si
hacemos menos loops de los requeridos, entonces tendremos un error de lgica.

NullPointerException
El NullPointerException, la maldicin de los programadores en Java. Los NullPointerExceptions
son errores de lgica causados cuando un programa intenta acceder a mtodos 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 mtodo o el acceso a uno de sus atributos no
es vlido.

Espero que esta lista corta de errores de cdigo le ayude a pensar de manera defensiva a la hora
de escribir cdigo. Mientras ms errores evitemos, entonces ms productivos seremos, tanto en
tiempo de desarrollo como tambin el cdigo ms refinado.

aqu estn los 10 errores ms comunes de todo programador


novato en Java.

1. Uso indiferente de llaves, parntesis, corchetes y comillas. Como por


ejemplo: while (a == 0].
2. La invocacin de mtodos con argumentos equivocados o tipos de argumentos.
Por ejemplo: list.get(abc).
3. Final de un mtodo no vaco sin retorno. Por ejemplo:
<em>
public int tips(int x)
{
if (x &lt; 0)
return 0;
x += 1;
}
</em>
4. Confundir el operador de asignacin (=) con el operador de comparacin (==): Por
ejemplo: si (a = b).
5. Ignorar o descartar el valor de retorno de un mtodo con el tipo de retorno no
vaco. por ejemplo: myObject.toString ();
6. El uso de == en lugar de .equals para comparar cadenas.
7. Tratar de invocar un mtodo no esttico como si fuera esttico. Por
ejemplo:MyClass.toString ();
8. Una Clase pretende implementar una interfaz, pero no implementa todos los
mtodos necesarios. por ejemplo: class Y implements ActionListener { }
9. La invocacin de tipos de parmetros cuando se invoca un mtodo Por
ejemplo: myObject.tips (int x, String s);
10. Punto y coma incorrecto en declaraciones o bucles. Como por ejemplo: if (a==b);
return 6;

El punto y coma es el error ms pico y el que ms canas saca a cualquier


programador y no solo en java sino que en cualquier lenguaje de programacin.

Qu te ha parecido este listado?

Comenta otros errores comunes en Java o en cualquier lenguaje de programacin


que comete todo programador.

Fuente: Askaswiss

Você também pode gostar