Estamos lanzando un sistema, y a veces recibimos la famosa excepción NullReferenceException
con el mensaje Object reference not set to an instance of an object
.
Sin embargo, en un método en el que tenemos casi 20 objetos, tener un registro que dice que un objeto es nulo, realmente no sirve de nada. Es como decirte, cuando eres el agente de seguridad de un seminario, que un hombre entre 100 asistentes es un terrorista. Eso no te sirve de nada. Debería obtener más información, si desea detectar qué hombre es el hombre amenazante.
Del mismo modo, si queremos eliminar el error, necesitamos saber qué objeto es nulo.
Ahora, algo me ha obsesionado durante varios meses, y eso es:
¿Por qué .NET no nos da el nombre, o al menos el tipo de referencia de objeto, que es nulo? . ¿No puede entender el tipo de reflexión o cualquier otra fuente?
Además, ¿cuáles son las mejores prácticas para comprender qué objeto es nulo? ¿Deberíamos siempre probar manualmente la nulabilidad de los objetos en estos contextos y registrar el resultado? ¿Hay una mejor manera?
Actualización:
la excepción The system cannot find the file specified
tiene la misma naturaleza. No puede encontrar qué archivo, hasta que lo adjunte al proceso y lo depure. Supongo que este tipo de excepciones pueden volverse más inteligentes. ¿No sería mejor si .NET pudiera contarnos en c:\temp.txt doesn't exist.
lugar de ese mensaje general? Como desarrollador, voto sí.
new
para crear instancias de una clase. ¿Cuándo ayuda realmente tal pista?