Approach 1 is significantly more useful in my opinion. NullReferenceException
s, or in this case ArgumentNullException
s thrown where you can't determine what was null
is very frustrating.
Also, if you don't like looking at the validation code you can always wrap it in a code region and fold it away in your IDE.