33 lines
748 B
Plaintext
33 lines
748 B
Plaintext
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;
|
|
}
|
|
----
|
|
|
|
include::../see.adoc[]
|