I think raising an `ArgumentException` would be more appropriate. 

Snippet from the link below:
"...
ArgumentException is thrown when a method is invoked and at least one of the passed arguments does not meet the parameter specification of the called method. All instances of ArgumentException should carry a meaningful error message describing the invalid argument, as well as the expected range of values for the argument.
..."

http://msdn.microsoft.com/en-us/library/system.argumentexception.aspx