FallThrough
Since Checkstyle 3.4
Description
switch statements.
          Finds locations where a case contains Java code but lacks a
          break, return, yield, throw or continue statement.
        
          The check honors special comments to suppress the warning.
          By default, the texts
          "fallthru", "fall thru", "fall-thru",
          "fallthrough", "fall through", "fall-through"
          "fallsthrough", "falls through", "falls-through" (case-sensitive).
          The comment containing these words must be all on one line,
          and must be on the last non-empty line before the case triggering
          the warning or on the same line before the case(ugly, but possible).
          Any other comment may follow on the same line.
        
          Note: The check assumes that there is no unreachable code in the case.
        
Properties
Examples
To configure the check:
<module name="Checker">
  <module name="TreeWalker">
    <module name="FallThrough"/>
  </module>
</module>
Example:
class Example1 {
  public void foo() throws Exception {
    int i = 0;
    while (i >= 0) {
      switch (i) {
        case 1:
          i++;
          /* block */ /* fallthru */ // comment
        case 2: // ok, ReliefPattern is present in above line.
          i++;
          break;
        case 3:
          i++;
          return;
        case 4:
          i++;
          throw new Exception();
        case 5:
          i++; // no break by design
        case 6: // violation 'Fall\ through from previous branch of the switch'
        case 7:
          i++;
          continue;
        case 11:
          i++;
      }
    }
  }
}
To configure the check to enable check for last case group:
<module name="Checker">
  <module name="TreeWalker">
    <module name="FallThrough">
      <property name="checkLastCaseGroup" value="true"/>
    </module>
  </module>
</module>
Example:
class Example2 {
  public void foo() throws Exception {
    int i = 0;
    while (i >= 0) {
      switch (i) {
        case 1:
          i++;
        case 2: // violation 'Fall\ through from previous branch of the switch'
          i++;
          break;
        case 3:
          i++;
          return;
        case 4:
          i++;
          throw new Exception();
        case 5:
          i++; // no break by design
        case 6: // violation 'Fall\ through from previous branch of the switch'
        case 7:
          i++;
          continue;
        case 11: // violation 'Fall\ through from the last branch of the switch'
          i++;
      }
    }
  }
}
To configure the check with custom relief pattern:
<module name="Checker">
  <module name="TreeWalker">
    <module name="FallThrough">
      <property name="reliefPattern" value="no break by design"/>
    </module>
  </module>
</module>
Example:
class Example3 {
  public void foo() throws Exception {
    int i = 0;
    while (i >= 0) {
      switch (i) {
        case 1:
          i++;
        case 2: // violation 'Fall\ through from previous branch of the switch'
          i++;
          break;
        case 3:
          i++;
          return;
        case 4:
          i++;
          throw new Exception();
        case 5:
          i++; // no break by design
        case 6:
        case 7:
          i++;
          continue;
        case 11:
          i++;
      }
    }
  }
}
Example of Usage
Violation Messages
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
Package
com.puppycrawl.tools.checkstyle.checks.coding






