i know it's an old thread but i'd like to share MHO. this is what i normally do:
create a generic method:
private void ValidateArgument(Func validation, string errorMessage) where exType : Exception
{
if (validation())
{
throw Activator.CreateInstance(typeof(exType), errorMessage) as exType;
}
}
and then from the calling method you do:
this.ValidateArgument(() => string.IsNullOrEmpty(firstname), "firstname must be supplied");