Skip to content

Latest commit

 

History

History
111 lines (85 loc) · 2.09 KB

File metadata and controls

111 lines (85 loc) · 2.09 KB

<-- previous rule | overview | next rule -->

Replace EXIT outside loop with RETURN

Replaces EXIT outside loop with RETURN to exit the processing block.

References

Options

  • Apply to procedures (METHOD, FUNCTION, FORM)
  • Apply to event blocks (INITIALIZATION, START-OF-SELECTION etc.)

Examples

REPORT any_report.

CLASS any_class IMPLEMENTATION.
  METHOD any_method.
    DO 5 TIMES.
      IF sy-index = 4.
        " this continues after ENDDO
        EXIT.
      ENDIF.
    ENDDO.

    CASE iv_action.
      WHEN 'exit'.
        EXIT.
      WHEN OTHERS.
        do_something( ).
    ENDCASE.
  ENDMETHOD.
ENDCLASS.

INITIALIZATION.
  IF a = b.
    EXIT.
  ENDIF.

START-OF-SELECTION.
  PERFORM any_form.
  EXIT.
  PERFORM unreachable_code.

FORM any_form.
  LOOP AT gt_any_table ASSIGNING <ls_any> WHERE comp1 > 10.
    " this continues after ENDLOOP
    EXIT.
  ENDLOOP.
  IF sy-subrc = 0.
    EXIT.
  ENDIF.
ENDFORM.

Resulting code:

REPORT any_report.

CLASS any_class IMPLEMENTATION.
  METHOD any_method.
    DO 5 TIMES.
      IF sy-index = 4.
        " this continues after ENDDO
        EXIT.
      ENDIF.
    ENDDO.

    CASE iv_action.
      WHEN 'exit'.
        RETURN.
      WHEN OTHERS.
        do_something( ).
    ENDCASE.
  ENDMETHOD.
ENDCLASS.

INITIALIZATION.
  IF a = b.
    RETURN.
  ENDIF.

START-OF-SELECTION.
  PERFORM any_form.
  RETURN.
  PERFORM unreachable_code.

FORM any_form.
  LOOP AT gt_any_table ASSIGNING <ls_any> WHERE comp1 > 10.
    " this continues after ENDLOOP
    EXIT.
  ENDLOOP.
  IF sy-subrc = 0.
    RETURN.
  ENDIF.
ENDFORM.

Related code