Recuerdo haber leído alguna guía de manejo de excepciones que indicaba que no se recomienda verificar parámetros nulos. La justificación para esto era que, si dejaba el código como está, se generaría una excepción (NullReferenceExcpetion) cuando intentaba usar el parámetro. La alternativa es comprobar explícitamente null y lanzar una ArgumentNullException.Manejar o no manejar parámetros nulos con excepciones
Esto le da el mismo efecto pero tiene líneas adicionales de código. Nunca escribirías código para manejar ninguna de las dos excepciones y, por lo tanto, podrías encontrarlas en tiempo de ejecución al probarlas y luego arreglar el código para evitar que las excepciones ocurran en primer lugar.
No estoy diciendo que estoy de acuerdo con la orientación pero sí tenía sentido cuando la leí por primera vez y todavía tiene sentido.
En general, solo compruebo los parámetros nulos en métodos no privados pero dejo métodos privados para arrojar una NullReferenceException.
¿Alguien sabe si hay alguna práctica de orientación definitiva/de facto en esto para que pueda actualizar mi enfoque si es necesario?
no es definitivo, pero la distinción para mí es que un argumento [Null] excepción indica que la entrada ha sido validado y rechazado deliberadamente, mientras que un NullReferenceException significa un uso sin control de una referencia sin asignar (posiblemente ni siquiera en el momento de la llamada original), que probablemente sea un error. Tiendo a usar ArgumentNullException en los métodos públicos y Debug.Assert en los privados.El trabajo pesado de las líneas adicionales de código se puede aliviar un poco mediante el uso de fragmentos de código para insertar las comprobaciones y lanzamientos nulos. – shambulator