54 lines
1.5 KiB
Plaintext
54 lines
1.5 KiB
Plaintext
== Why is this an issue?
|
|
|
|
include::../description.adoc[]
|
|
|
|
include::../noncompliant.adoc[]
|
|
|
|
include::../compliant.adoc[]
|
|
|
|
=== Exceptions
|
|
|
|
This rule is relaxed in the following cases:
|
|
|
|
[source,java]
|
|
----
|
|
switch (myVariable) {
|
|
case 0: // Empty case used to specify the same behavior for a group of cases.
|
|
case 1:
|
|
doSomething();
|
|
break;
|
|
case 2: // Use of a fallthrough comment
|
|
// fallthrough
|
|
case 3: // Use of return statement
|
|
return;
|
|
case 4: // Use of throw statement
|
|
throw new IllegalStateException();
|
|
case 5: // Use of continue statement
|
|
continue;
|
|
default: // For the last case, use of break statement is optional
|
|
doSomethingElse();
|
|
}
|
|
----
|
|
|
|
== Resources
|
|
|
|
* CWE - https://cwe.mitre.org/data/definitions/484[CWE-484 - Omitted Break Statement in Switch]
|
|
* https://wiki.sei.cmu.edu/confluence/x/ldYxBQ[CERT, MSC17-C.] - Finish every set of statements associated with a case label with a break statement
|
|
* https://wiki.sei.cmu.edu/confluence/x/1DdGBQ[CERT, MSC52-J.] - Finish every set of statements associated with a case label with a break statement
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|