Home
In labeled loops EXIT should exit the label
Rule description
- In labeled loops EXIT should exit the label
Non-compliant Code Example
DECLARE errorLog_ EXCEPTION;
BEGIN
<<CUSTOMER_TABLE_ITERATION>> --Non compliant code (EXIT is not labeled as loop label)
FOR i IN 1 .. CUSTOMER_TABLE.COUNT
LOOP
IF CUSTOMER_TABLE(i).Id > 25 THEN
EXIT;
ELSIF CUSTOMER_TABLE(i) IS NOT NULL THEN
DBMS_OUTPUT.PUT( i || ' = (' || CUSTOMER_TABLE(i).Name || ', ' || CUSTOMER_TABLE(i).PhoneNumber || ')' );
END IF;
END LOOP;
EXCEPTION
WHEN ERRORS THEN
RETURN;
END CUSTOMER_TABLE_ITERATION;
Compliant Code Example
DECLARE errorLog_ EXCEPTION;
BEGIN
<<CUSTOMER_TABLE_ITERATION>> --Compliant code (EXIT is labeled as loop label)
FOR i IN 1 .. CUSTOMER_TABLE.COUNT
LOOP
IF CUSTOMER_TABLE(i).Id > 25 THEN
EXIT CUSTOMER_TABLE_ITERATION;
ELSIF CUSTOMER_TABLE(i) IS NOT NULL THEN
DBMS_OUTPUT.PUT( i || ' = (' || CUSTOMER_TABLE(i).Name || ', ' || CUSTOMER_TABLE(i).PhoneNumber || ')' );
END IF;
END LOOP;
EXCEPTION
WHEN ERRORS THEN
RETURN;
END CUSTOMER_TABLE_ITERATION;