Вопросы:
- Насколько "нормальны" случаи, когда метод вызывается с неподходящим параметром enum?
- Вы можете изящно обработать эти случаи и затем продолжить обработку?
Из того, что вы описываете, оно не является "нормальным" (происходит только тогда, когда добавляется новое значение перечисления и метод не обновляется должным образом - то есть, когда была введена ошибка). Так что для меня это больше похоже на случай RuntimeException (то есть без проверки). Вызывающие этот метод все еще могут поймать непроверенное исключение, если они действительно этого хотят, но они не обязаны это делать.
OTOH Я бы попытался исключить описанный вами случай, переместив данные, возвращаемые вашим методом, прямо в перечисление. Таким образом, всякий раз, когда добавляется новое значение перечисления, соответствующие данные не могут быть забыты.
Если вам интересно, вы можете проверить этот урок .