Tak więc mam funkcję, która formatuje datę wymuszenia na konkretną enum DateType {BIEŻĄCY, START, END} jaki byłby najlepszy sposób obsługi zwracanej wartości w przypadkach, które używają instrukcji switchWyrzucanie wyjątku vs zwracanie wartości pustej z instrukcją przełącznika
public static String format(Date date, DateType datetype) {
..validation checks
switch(datetype){
case CURRENT:{
return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
}
...
default:throw new ("Something strange happend");
}
}
lub wyrzucić excpetion na końcu
public static String format(Date date, DateType datetype) {
..validation checks
switch(datetype){
case CURRENT:{
return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
}
...
}
//It will never reach here, just to make compiler happy
throw new IllegalArgumentException("Something strange happend");
}
lub zawracania zerowy
public static String format(Date date, DateType datetype) {
..validation checks
switch(datetype){
case CURRENT:{
return getFormattedDate(date, "yyyy-MM-dd hh:mm:ss");
}
...
}
return null;
}
Jaka byłaby tutaj najlepsza praktyka? Również wszystkie wartości wyliczeniowe będą obsługiwane w przypadku:
Jeśli masz warunek, który nigdy nie powinien się zdarzyć, użyłbym AssertionError. –
Dzięki AssertionError ma więcej sensu niż IllegalArgumentException – Greg