Załóżmy, że mamy metodę, która akceptuje wartość wyliczenia. Po sprawdzeniu, że ta wartość jest poprawna, metoda ta jest w stanie przekroczyć możliwe wartości. Pytanie brzmi: jaka jest preferowana metoda obsługi niespodziewanych wartości po sprawdzeniu zakresu wartości?Jaka jest preferowana metoda obsługi nieoczekiwanych wartości wyliczania?
Na przykład:
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?
}
Jaka jest preferowana metoda zajmuje się sprawą default
?
- komentarz jak
// can never happen
Debug.Fail()
(lubDebug.Assert(false)
)throw new NotImplementedException()
(lub innego wyjątku)- jakiś inny sposób nie myślałem o
Zamieszczam odpowiedź z moją własną opinią. Jeśli masz inną opinię lub inny przypadek, który ją obsługuje, podziel się swoją wiedzą. Celem pytania jest zebranie pomysłów na ten temat, aby pomóc innym ludziom (i mnie) zmierzyć się z tą sytuacją. –
dlaczego został oznaczony jako java? – OscarRyz
@Oscar: Powinno to być niezależne od języka pytanie IMHO. Ludzie mogą znaleźć odpowiedź na oba języki tutaj. –