rspec/rules/S128/java/rule.adoc

51 lines
1.5 KiB
Plaintext
Raw Normal View History

2020-06-30 10:16:44 +02:00
include::../description.adoc[]
include::../noncompliant.adoc[]
include::../compliant.adoc[]
== Exceptions
This rule is relaxed in the following cases:
[source,java]
2020-06-30 10:16:44 +02:00
----
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
2020-06-30 10:16:44 +02:00
return;
case 4: // Use of throw statement
2020-06-30 10:16:44 +02:00
throw new IllegalStateException();
case 5: // Use of continue statement
2020-06-30 10:16:44 +02:00
continue;
default: // For the last case, use of break statement is optional
doSomethingElse();
}
----
== See
* https://cwe.mitre.org/data/definitions/484[MITRE, 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[]