Если вы ищете значение, которое должно по определению соответствовать значению перечисления, и вы получили что-то еще, это определенно недопустимый аргумент.
Но теперь вы должны рассмотреть контекст.
Является ли метод закрытым и доступным только членам вашей библиотеки классов или приложения? Если это так, то это ошибка кодирования, которая никогда не должна происходить вообще. Утверждай и проваливай.
Если, с другой стороны, это общедоступный или защищенный метод, и к нему могут обращаться клиенты, использующие вашу библиотеку, вам непременно следует выдать содержательное сообщение (и, предпочтительно, общеизвестный тип исключения).
Важно помнить, что перечисления не проверяются диапазоном в Framework. Я могу указать, что для метода требуется параметр типа Environment.SpecialFolder; но он примет любое 32-разрядное целочисленное значение.
Короче говоря, если ваш метод предназначен для общественного потребления, да, непременно, бросьте. Если это не для общественного потребления, Подтвердите .