Throwing exception vs returning null value with switch statement

Posted by Greg on Stack Overflow See other posts from Stack Overflow or by Greg
Published on 2010-04-02T16:55:14Z Indexed on 2010/04/02 17:03 UTC
Read the original article Hit count: 342

Filed under:
|
|

So I have function that formats a date to coerce to given enum DateType{CURRENT, START, END} what would be the best way to handling return value with cases that use switch statement

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

}

OR throw excpetion at the end

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

OR return 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;   
}

What would be the best practice here ? Also all the enum values will be handled in the case statement

© Stack Overflow or respective owner

Related posts about best-practices

Related posts about return-value