¿Qué lenguajes de programación manejan mejor las excepciones de puntero NULL?

Ningún idioma ignorará las operaciones que impliquen un puntero nulo por defecto.

¿Qué sucede si llama a una función que toma algunos punteros y solo uno de ellos es nulo? La función podría evaluarse a mitad de camino porque usa el puntero nulo y produce efectos secundarios. Entonces tienes una función que hizo la mitad de su trabajo.

Un puntero nulo generalmente significa un error en el programa. Si hay un error, el programador necesita saberlo. Preferiblemente, el programador sabe exactamente dónde sucede. De lo contrario, podría haber solo 20 llamadas a funciones y 5 archivos después de que se manifieste el error, y será un esfuerzo gigantesco encontrar el punto de falla original.

Hay lenguajes que admiten opciones opcionales (como F #, que es a lo que creo que se refirió Kishore, pero no es exclusivo de F #), que es un tipo que Some (puntero no nulo) o None (), por lo que lo hace explícito que un puntero debe o no ser nulo. Sin embargo, para hacer una no operación, aún tendrá un condicional en alguna parte.

Swift con XCode IDE lo maneja bastante bien en realidad.

Se garantiza que las variables declaradas como Opcionales ( https://developer.apple.com/libr …) toman un valor o nulo en caso de que no se le asigne ningún valor. Esas variables nunca pueden tener un valor nulo en ningún momento; o tienen un valor o nulo.

Pero si intentamos acceder a un valor nulo, todavía arrojará una excepción de tiempo de ejecución. Por lo tanto, ese control debe ser realizado por nosotros.

XCode IDE facilita esto aún más al mostrar una señal roja en las declaraciones que podrían generar NPE en una etapa posterior. Para hacer que XCode detecte tales declaraciones, tenemos que anteponer un signo de interrogación a la variable.

De cualquier manera, solo podemos obtener indicaciones. El manejo de NPE descansa sobre nuestros hombros.

Idiomas que no permiten valores nulos.

More Interesting

¿Cómo serían diferentes los sitios web si se construyeran con una experiencia óptima de pantalla táctil en mente?

¿Hay alguna buena razón para usar Linux para el desarrollo web, en lugar de Windows?

¿Cuántos años necesito como desarrollador web para tener demanda?

¿Cuánta compensación de equidad debería obtener por realizar trabajos de desarrollo en una startup?

¿Está bien aprender angular 1.0 o debería comenzar a aprender angular 2.0?

¿Cuál es el alcance de Node.js y cuáles son las mejores fuentes para aprenderlo?

¿Cuál es un precio razonable a pagar por un diseño de página de destino sólido?

¿Qué API de sitio web de viajes indio se puede utilizar para hacer un sitio de comparación de viajes?

¿Se almacena una página web en un servidor o una base de datos?

¿Cuánto tienen en común los marcos de Nodejs con respecto a los NodeJs simples? En otras palabras, si conoce un marco como Hapi, ¿significa que conoce Node?

¿Por qué debería aprender un marco JS front-end (Angular, React, etc.) y cuáles son sus beneficios sobre un sitio construido más 'tradicionalmente'?

¿Qué se necesita para crear un sitio de publicación en línea como MarcoPolis?

En la planificación de la capacidad de infraestructura para las operaciones web, ¿qué son las pruebas de resistencia y por qué es importante?

¿Qué es mejor usar malloc, calloc o realloc?

¿Deben los desarrolladores web diseñar conscientemente sus aplicaciones para pruebas automatizadas?