不是每一个switch语句都需要一个default
为什么需要default
给每一个swith加上default分支,一直是一个推荐的实践。在以下三种场景下都建议使用default分支。
场景一
在switch语句中,前面的case是特殊的处理,default分支里是默认实现。在这种情况下,default分支恰好契合了default的语义。譬如:
void bar(WeekDay day) {
switch (day)
case SATURDAY: {
//something
break;
}
case SUNDAY: {
//something else
break;
}
default: {
//working day, default case
break;
}
}
}
场景二
利用default分支来捕获设计中没有考虑到的异常的值,譬如:
void foo(int type) {
switch(type) {
case 1: {
//something
break;
}
case 2: {
//something else
break;
}
default: {
// unknown type!
// error-handling<