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[]