JavaRush /Blog Java /Random-ES /Traducción: 6 excepciones de Java que afectan a los recié...
profeg
Nivel 18

Traducción: 6 excepciones de Java que afectan a los recién llegados a Java.

Publicado en el grupo Random-ES

Seis excepciones de Java que atormentan a los principiantes de Java.

(Original) (Soy nuevo tanto en Java como en inglés, así que estaré encantado de recibir críticas y ayuda) Tanto antes como ahora, me encuentro con muchos novatos en Java que tienen problemas con algunas excepciones comunes que tengo que explicar una vez más. Creo que otros desarrolladores senior de Java tienen el mismo problema al intentar ayudar a los novatos a lidiar con estas excepciones. Por eso, escribí este artículo para mi propio desarrollo. No dude en comentar este artículo o agregar excepciones a la lista a continuación.
1. Error NoClassDefFound
Esta es una de esas excepciones, con un mensaje como “Excepción en el hilo “principal” NoClassDefFoundError” , que la mayoría de los nuevos desarrolladores de Java encuentran en el mundo de la programación Java. Un principiante escribe un programa que muestra "¡Hola mundo!", va a la línea de comando, escribe "java ...", presiona Enter y ¡BAM! =). Y descubrir cómo hacer que el programa imprima "¡Hola mundo!" en el monitor, lleva algo de tiempo. NoClassDefFoundError ocurre cuando la máquina virtual Java (JVM) intenta acceder a una clase en el momento del inicio y no se encuentra la clase, aunque se encontró la misma clase en el momento de la compilación. La mayoría de las veces, esta excepción ocurre cuando se intenta ejecutar un programa usando el comando "java" y la ruta de clases no está configurada correctamente. A continuación se ofrece una descripción de los motivos por los que se produce esta excepción.
  • La clase no está disponible en -classpath.
  • La variable de entorno CLASSPATH ha sido anulada. Puede comprobar su presencia y corrección utilizando el comando "establecer" de Windows.
La solución al problema se describe con más detalle aquí.
Además, debe comprender la diferencia entre la variable de entorno CLASSPATH y la clave del intérprete -classpath. Los profesionales no recomiendan utilizar CLASSPATH. La mejor manera es pasar la clave -classpath al intérprete.
2. Excepción de clase no encontrada
ClassNotFoundException es otra excepción que se convierte en una pesadilla para un novato tan pronto como comienza a programar. Curiosamente, el desarrollador Java promedio a menudo se confunde entre las excepciones ClassNotFoundException y NoClassDefFoundError . Y así, la diferencia entre estas dos excepciones sigue siendo una de las preguntas más frecuentes en las entrevistas para el puesto Junior . ClassNotFoundException ocurre cuando la JVM intenta cargar una clase específica y no la encuentra en el classpath. Uno de los lugares comunes donde un nuevo desarrollador de Java lo encuentra por primera vez es conectarse a una base de datos utilizando la biblioteca JDBC. Allí intentaremos cargar el controlador usando un código como Class.forName("JDBCdriver"). Un buen artículo sobre ClassNotFoundException está aquí . Intentar comprender el concepto de Java Classloaders es el método más eficaz para solucionar este problema. Puede leer cómo configurar el classpath de Java en un entorno Win/Unix . Como se indica en los documentos de Java , se produce una excepción en los siguientes casos:
  • Intenta cargar una clase usando el método Class.forName y el archivo .class no está en la ruta de clases. Este es el escenario más común de los tres enumerados aquí.
  • Cuando el cargador de clases intenta cargar una clase usando loadClass.
  • Cuando el cargador de clases intenta cargar una clase usando findSystemClass.
3. Excepción de puntero nulo
Esta excepción es más fácil de entender para los principiantes que las dos primeras. Además, esta excepción se identifica fácilmente porque cuando ocurre, el mensaje sobre la excepción indica el número de línea en el programa donde ocurrió. Esta excepción ocurre cuando la JVM intenta acceder a un objeto o intenta llamar a un método en un objeto y recibe un valor nulo en lugar de una referencia al objeto. El Java Doc también establece las siguientes razones:
  • Acceder o cambiar un método en un objeto que no es válido. (es decir, en lugar de una referencia a un objeto JVM, se vuelve nulo)
  • Obtener la longitud de una matriz cuando no es válida. (no inicializado por ejemplo)
  • Se intentó acceder a un elemento de matriz inexistente de tipo Objeto. (es decir, cuando, en lugar de una referencia a un objeto, el elemento de la matriz contiene un valor nulo)
El método más sencillo para evitar esta excepción es utilizar una verificación que no sea NULL. Sin embargo, tarde o temprano, esto se convierte en una práctica de desarrollo de Java y encontrará comprobaciones no NULL en todas partes. Curiosamente, insertar comprobaciones no NULL en todas partes no se considera un buen estilo de programación . Y la razón principal para utilizar la verificación no NULL es que el desarrollador quiere pasar un objeto nulo en caso de falla o error. En cambio, es una buena práctica de programación que los programadores deberían utilizar para devolver un objeto vacío, en lugar de un valor nulo , como lógica básica de cómo se comportará un programa en caso de error. Sin embargo, adoptar esta práctica de programación es más difícil de lo que parece.
Hay un buen artículo sobre esto en nuestro recurso.
4. Excepción ClassCast
Esta es otra excepción familiar para los principiantes, que ocurre cuando se intenta convertir un objeto a una clase que no es una subclase del mismo. Nuevamente, esto es bastante fácil de entender, identificar y solucionar. Una forma de evitar esta excepción cuando se desconoce el tipo de objeto en tiempo de ejecución es utilizar "InstanceOf" para comprobar que el objeto es una instancia de una clase particular.
5. Excepción ArrayIndexOutOfBounds
Esta excepción se explica por sí misma y ocurre cuando la JVM intenta acceder a un elemento de la matriz con un índice inexistente, como negativo (-1) o mayor o igual al tamaño de la matriz. Es bastante fácil de entender, definir y corregir . Por ejemplo, al crear un bucle, for (i = 0; i <= cmd_stack.length; i++) System.out.println(cmd_stack[i]); se produce una excepción, porque en la matriz los índices comienzan desde 0 y el método de longitud devuelve el número de elementos, y el número es 1 mayor que el valor del último índice. Uso correcto for (i = 0; i < cmd_stack.length; i++) System.out.println(cmd_stack[i]);
6. Excepción de argumento ilegal
Esta excepción es menos común y bastante fácil de entender, identificar y resolver. Ocurre cuando la JVM intenta llamar a un método inexistente o a un método con un argumento no válido.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION