An ArgumentNullException exception is thrown when a method is invoked and at least one of the passed arguments is null but should never be null.
An ArgumentNullException exception is thrown at run time in the following two major circumstances, both of which reflect developer error:
An uninstantiated object is passed to a method. To prevent the error, instantiate the object.
An object returned from a method call is then passed as an argument to a second method, but the value of the original returned object is null. To prevent the error, check for a return value that is null and call the second method only if the return value is not null.
ArgumentNullException behaves identically to ArgumentException. It is provided so that application code can differentiate between exceptions caused by null arguments and exceptions caused by arguments that are not null. For errors caused by arguments that are not null, see ArgumentOutOfRangeException.
ArgumentNullException uses the HRESULT E_POINTER, which has the value 0x80004003.
For a list of initial property values for an instance of ArgumentNullException, see the ArgumentNullException constructors.