Informix Error -4399
-4399 The WHILE statement at line line-number is not terminated.
4GL could not identify an END WHILE statement to match the WHILE statement on the line number shown. Start at that line and work down until you find where the terminating statement should have been, and insert it.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-4399 fires when the compiler can't find an END WHILE to match a WHILE statement — per the
official guidance, start at the reported line and work downward to find where the terminator
should have been.
- A
WHILEstatement with no matchingEND WHILE, per the official guidance — the direct, only cause.
Solutions / Resolution
- Start at the reported line and work down until you find where
END WHILEshould have been, then insert it, per the official guidance.
Examples
A missing END WHILE
WHILE more_rows
CALL process()
-- -4399: no END WHILE found
Corrected
WHILE more_rows
CALL process()
END WHILE
Diagnostic Checks
- Work down from the reported
WHILEline, and insert the missingEND WHILEat the correct point.
Related Errors / Related Topics
- -4397 — "The IF statement at line line-number is not terminated." The same
missing-terminator pattern applied to
IF/END IFinstead ofWHILE. - -4400 — "The FOR statement at line line-number is not terminated." The same
missing-terminator pattern applied to
FOR/END FORinstead ofWHILE.
A WHILE statement has no matching END WHILE — insert one at the correct point.