41 lines
889 B
Plaintext
41 lines
889 B
Plaintext
![]() |
Jump statements (<code>EXIT</code>, <code>CONTINUE</code>, <code>RETURN</code>, <code>RAISE</code>, and <code>RAISE_APPLICATION_ERROR</code>), 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:
|
||
|
* <code>EXIT</code> without a <code>WHEN</code>
|
||
|
* <code>CONTINUE</code> without a <code>WHEN</code>
|
||
|
* <code>RETURN</code>
|
||
|
* <code>RAISE</code>
|
||
|
* <code>RAISE_APPLICATION_ERROR</code>
|
||
|
|
||
|
== 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;
|
||
|
/
|
||
|
----
|
||
|
|
||
|
include::../see.adoc[]
|