“Conocimientos Programación>Programación Java

¿Qué es una excepción de puntero nulo

2011/12/14
¿ Cada programador Java finalmente escribe un programa que produce el mensaje de error " NullPointerExceptions " . Es particularmente críptica para los que comienzan sus carreras de programación por aprendizaje de Java, que no expone a los programadores el concepto de un puntero. Punteros

Un puntero es un término informático para una variable que , en lugar de mantener un poco de información , mantiene un discurso a donde esa información se puede encontrar en la memoria de un ordenador. Se puede imaginar la variable como una señal de que " apunta" a que la información se puede encontrar . En lenguajes como C + + , el programador tiene que tomar una decisión explícita sobre si una determinada variable mantendrá la información directa o se mantenga en su lugar un puntero a la información y esta elección puede tener un profundo efecto en la eficiencia del programa . Por ejemplo, si una determinada clase tiene pocos megabytes de información que se debe pasar a una función , es mucho más eficaz para dar a la función un puntero que copiar toda la información directamente .

Repuestos programadores Java este dilema y los errores que se pueden producir al ocultar punteros del programador .
Null

Null es otro término especial en la informática. Hace referencia a una variable que contiene literalmente no hay información. Hasta que cierta información se asigna a la misma, que se dice que es igual a un valor nulo. Por ejemplo , en el siguiente código :

String s ; s = new String () ;

Una vez finalizada la primera línea, " s " es igual a null. Una vez finalizada la segunda línea, " s " es igual a una cadena vacía.

Punteros nulos

Aunque Java intenta ocultar punteros del programador, hay un caso en el que no puede hacerlo. Todas las clases son en realidad punteros a posiciones de memoria donde se pueden encontrar los datos de la clase. Esto hace que sea más rápido cuando las clases se deben pasar dentro y fuera de funciones . Sin embargo, en el ejemplo anterior, después de ejecutar la primera línea, un puntero se ha reservado para la " s ", pero no hay datos se ha creado. " s " no tiene reservado para que la memoria, por lo que es un " puntero nulo. "
excepciones de puntero nulo

Ahora que ya sabe lo que es un puntero nulo es , considere las siguientes dos líneas de código :

string s ; s.charAt ( 0 ) ; //Obtener el primer caracter de la cadena

el código está pidiendo el primer carácter de . un objeto de cadena que simplemente no existe . En otras palabras, se está pidiendo lo imposible. Tan pronto como esto ocurre , Java se da cuenta del problema y lanza una " NullPointerException " para que el usuario o el programador sabe que algo ha salido mal.
Ejemplo

más los programadores de Java nunca cometa el error anterior : saben objetos como cuerdas deben inicializar con el "nuevo " comando . Sin embargo , tenga en cuenta la siguiente función :

público impresión void (String s ) { System.out.println ( s ) ;}

Inicialmente , este código se ve bien : la función recibe una cadena de en otras partes del programa y lo imprime a la pantalla . Sin embargo , ¿qué pasa si la persona que ejecuta la función que se envía es una cadena que no se ha inicializado correctamente? A NullPointerException sería arrojado .
Depuración y Prevención

El primer paso para prevenir NullPointerExceptions es garantizar que los nuevos objetos de clase son siempre inicializado correctamente . Sin embargo , nadie es perfecto , por lo que el segundo paso es adquirir el hábito de realizar los datos policiales para las funciones. Los datos de entrada deben ser tratados siempre como indignos de confianza , por lo que la siguiente modificación se podría hacer :

impresión public boolean (String s ) { try { System.out.println ( s ) ; return true ; //Deja que el resto del programa saben que la operación fue exitosa } catch ( NullPointerException e) {return false; . . //Deja que el resto del programa conoce la operación falló } }

la ventaja de este enfoque proactivo es que el resto del programa se puede escribir para juzgar qué tan serio es el problema, en lugar de dejar inmediatamente y dar al usuario un mensaje de error feo y críptico .

Programación Java
Cómo especificar Hidden URL de entrada con JSF
Cómo hacer que las dependencias de Java
Cómo utilizar Filefilter en Java
Cómo eliminar una cadena a partir de una lista doblemente enlazada en Java
Cómo crear jerarquías Enum con Java
Cómo almacenar enteros en un array en Java
Cómo desarrollar una aplicación de test de personalidad en Java
Cómo convertir Octal a decimal en Java
Conocimientos Informáticos © http://www.ordenador.online