Jump statements (EXIT
, CONTINUE
, RETURN
, RAISE
, and RAISE_APPLICATION_ERROR
), move
control flow out of the current code block. So any statements that come after a jump are dead code.
This rule detects for statements that follow:
-
EXIT
without a WHEN
-
CONTINUE
without a WHEN
-
RETURN
-
RAISE
-
RAISE_APPLICATION_ERROR
Noncompliant code example
SET SERVEROUTPUT ON
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('This will be printed out');
EXIT;
DBMS_OUTPUT.PUT_LINE('This will NEVER be printed out'); -- Non-Compliant
END LOOP;
END;
/
Compliant solution
SET SERVEROUTPUT ON
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('This will be printed out');
EXIT;
END LOOP;
END;
/