[top] [prev] [next]

Return

A RETURN statement for a proper procedure has the form:

    RETURN
The statement raises the return-exception without an argument. It is allowed only in the body of a proper procedure.

A RETURN statement for a function procedure has the form:

    RETURN Expr
where Expr is an expression assignable to the result type of the procedure. The statement raises the return-exception with the argument Expr. It is allowed only in the body of a function procedure.

Failure to return a value from a function procedure is a checked runtime error.

The effect of raising the return exception is to terminate the current procedure activation. To be precise, a call on a proper procedure with body B is equivalent (after binding the arguments) to:

    TRY B EXCEPT return-exception => (*skip*) END
A call on a function procedure with body B is equivalent to:
    TRY 
      B;  (error: no returned value)  
    EXCEPT 
      return-exception (v) => (the result becomes v)  
    END

[top] [prev] [next]