NOTE: This is different than the proposed duplicates as this deals with an argument rather than a value. The behavior and applicable scenarios are essentially different.
I'd throw the InvalidEnumArgumentException as it will give more detailed information in this case, you are checking on an enum