Prematurely leaving a procedure
In a procedure the routine
exit can be called in order to (prematurely) leave the procedure.
exit may not be supplied with any parameters, since procedures do not return any value, but functions do.
Supplying a parameter to
exit inside a procedure definition will yield the compile-time error “Error: Procedures cannot return a value”.
Procedure calls are statements. They may not appear in expressions, since they do not produce a value of any kind. The following example highlights all lines with procedure calls.
1 program procedureDemo(input, output, stderr); 2 3 var 4 x: longint; 5 6 procedure foo; 7 begin 8 exit; 9 inc(x); 10 end; 11 12 begin 13 x := 42; 14 foo; 15 writeLn(x); 16 end.
foo contains unreachable code (
inc(x) is never executed because of the [unconditional]