NullReferenceException ArgumentNullException

¿Porque pasarle null a los métodos?,  en determinados casos hay métodos que reciben un objeto con valor null, pero la realidad es que no es una buena práctica aunque si muy usada en el mundillo de la programación, cuántos de nosotros hemos visto algo así:

public void GuardarDatosCompra(Datos datosCompra)
{
if datosCompra == null)
throw new ArgumentNullException("datosCompra");
}

Entonces si pasamos un nulo como argumento, lo que logramos es recibir un ArgumentNullException en vez de un NullReferenceException.

Lo cierto es que ambas excepciones, para este caso, nos dicen lo mismo: le enviamos un objeto con valor null a un método y no deberíamos. ¿Cuál es la solución? para este caso en el que no se aceptan valores nulos, se deberían validar que estén cargados todos los valores correspondientes al objeto y así evitar agregar líneas de código sin sentido.

Gracias por tu visita, espero te haya servido de ayuda, pronto estaré escribiendo más sobre buenas prácticas, si deseas de que escriba de algún tema en especial por favor comunícamelo.

Saludos