Uploaded image for project: 'Rules Repository'
  1. Rules Repository
  2. RSPEC-134 Control flow statements "if", "for", "while", "switch" and "try" should not be nested too deeply
  3. RSPEC-2723

ABAP: Control flow statements "IF", "CASE", "DO", "LOOP", "SELECT", "WHILE" and "PROVIDE" should not be nested too deeply

    Details

    • Type: Language-Specification
    • Status: Active
    • Resolution: Unresolved
    • Labels:
      None
    • Impact:
      Unknown 'null' severity
    • Likelihood:
      Unknown 'null' severity
    • Default Quality Profiles:
      Sonar way

      Description

      Nested IF, CASE, DO, LOOP, SELECT, WHILE and PROVIDE statements is a key ingredient for making what's known as "Spaghetti code".

      Such code is hard to read, refactor and therefore maintain.

      Noncompliant Code Example

      With the default threshold of 3:

      IF param1 = 2.
        IF param2 = 4.
          DO 3 TIMES.    "Compliant - depth = 3, not exceeding the limit
            IF sy-index = 2.   "Noncompliant - depth = 4
              CONTINUE.
            ENDIF.
            WRITE sy-index.
          ENDDO.
        ENDIF.
      ENDIF.
      

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              ann.campbell.2 Ann Campbell
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: