The requirement for a final case default
clause is defensive programming. The clause should either take appropriate action, or contain
a suitable comment as to why no action is taken. Even when the switch
covers all current values of an enum
, a default case
should still be used because there is no guarantee that the enum
won’t be extended.
Noncompliant Code Example
switch ($param) { //missing default clause
case 0:
do_something();
break;
case 1:
do_something_else();
break;
}
Compliant Solution
switch ($param) {
case 0:
do_something();
break;
case 1:
do_something_else();
break;
default:
error();
break;
}
See