所以我有格式化日期强制转换为给定枚举DateType {CURRENT,START,END}的函数
在使用switch语句的情况下处理返回值的最佳方法是什么

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");
    }

}

或在结尾处抛出异常
   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");
        }

或返回null
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;
}

最佳做法是什么?同样,所有枚举值都将在case语句中处理

最佳答案

抛出异常,因为这是异常(exception)情况。

并将其扔到switch之外,它将更具可读性。否则,听起来像“默认情况是异常(exception)”。

10-06 02:14