Details

    • Type: Language-Specification
    • Status: Active
    • Resolution: Unresolved
    • Labels:
      None
    • Impact:
      Unknown 'null' severity
    • Likelihood:
      Unknown 'null' severity

      Description

      This rule applies whenever an if statement is followed by one or more else if statements; the final else if should be followed by an else statement.

      The requirement for a final else statement is defensive programming.
      The else statement should either take appropriate action or contain a suitable comment as to why no action is taken. This is consistent with the requirement to have a final case _ clause in a match.

      Noncompliant Code Example

      if (x == 0) {
        doSomething
      } else if (x == 1) {
        doSomethingElse
      } 
      

      Compliant Solution

      if (x == 0) {
        doSomething
      } else if (x == 1) {
        doSomethingElse
      } else {
        throw new IllegalStateException
      }
      

      Exceptions

      When all branches of an if-else if end with return, break or throw, the code that comes after the if implicitly behaves as if it was in an else clause. This rule will therefore ignore that case.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              pierre-yves.nicolas Pierre-Yves Nicolas
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: