Supongamos que tengo un método que toma un objeto de algún tipo como argumento. Ahora diga que si a este método se le pasa un argumento nulo, es un error fatal y se debe lanzar una excepción. ¿Vale la pena para mí para codificar algo como esto (teniendo en cuenta que es un ejemplo trivial):Throwing ArgumentNullException
void someMethod(SomeClass x)
{
if (x == null){
throw new ArgumentNullException("someMethod received a null argument!");
}
x.doSomething();
}
O es seguro para mí sólo se basan en él lanzando NullException cuando llama x.doSomething() ?
En segundo lugar, supongamos que someMethod es un constructor y x no se usará hasta que se llame a otro método. ¿Debería lanzar la excepción inmediatamente o esperar hasta que se necesite x y arrojar la excepción, entonces?
Usted puede estar interesado en el método Throw.If explicado por los servicios públicos [10 desarrolladores de C# deben saber] (http://www.codeducky.org/10-utilities-c-developers-should-know-part -one /) y Throw.IfNull en [10 utilidades gist en github] (https://gist.github.com/madelson/9177264). Le permiten escribir su lógica de comprobación de argumentos de manera más sucinta: 'Throw.IfNull (x, '' someMethod recibió un argumento nulo!")' –
También vale la pena señalar que el constructor de 'ArgumentNullException' que está utilizando aquí no toma un mensaje completo como parámetro. En su lugar, toma' paramName', que es el nombre del argumento que era nulo Vea [MSDN para obtener la definición completa] (http://msdn.microsoft.com/en-us/library/wssa019h (v = vs.110) .aspx). –
http://programmers.stackexchange.com/questions/121121/how-does-throwing-an-argumentnullexception-help –