Предположим, что у нас есть метод, который принимает значение перечисления. После того, как этот метод проверяет, что значение действительно, оно switch
es над возможными значениями. Итак, вопрос в том, какой предпочтительный метод обработки неожиданных значений после диапазон значений подтвержден?Каков предпочтительный метод обработки неожиданных значений перечислимого типа?
Например:
enum Mood { Happy, Sad }
public void PrintMood(Mood mood)
{
if (!Enum.IsDefined(typeof(Mood), mood))
{
throw new ArgumentOutOfRangeException("mood");
}
switch (mood)
{
case Happy: Console.WriteLine("I am happy"); break;
case Sad: Console.WriteLine("I am sad"); break;
default: // what should we do here?
}
Что является предпочтительным методом обработки default
случая?
- Оставить комментарий как
// can never happen
Debug.Fail()
(илиDebug.Assert(false)
)throw new NotImplementedException()
(или любое другое исключение)- Некоторые другие так, как я не думал о
Я отправляю ответ с моим собственным мнением. Если у вас другое мнение или другое дело, которое поддерживает этот, пожалуйста, поделитесь своими знаниями. Цель вопроса - собрать идеи по этой теме, помочь другим людям (и мне) столкнуться с этой ситуацией. –
Почему это было отмечено как java? – OscarRyz
@ Оскар: Это должен быть вопрос, не зависящий от языка ИМХО. Люди могут найти ответ для обоих языков здесь. –