Предположим, что у нас есть метод, который принимает значение перечисления. После того, как этот метод проверяет, что значение действительно, оно 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()
(или любое другое исключение) - Как-то иначе я не думал о