Please enable JavaScript to view this site.

A-Shell Development History

Compiler (edit 487)/language semantic change (could be considered an enhancement or a fix, but does change existing behavior): RESUME ENDFUNCTION (and RESUME ENDPROCEDURE) statements now ignore any explicit $EXIT label. Previously, if there was an explicit $EXIT label defined within the procedure, the RESUME would have resumed at the $EXIT label, and executed any code from there to the actual end of the routine.

The new behavior is more natural and safer, since it eliminates the possibility of an infinite error trapping loop (if an error occurred in the code after the $EXIT label).

Note that this also affects how untrapped errors within functions and procedures are handled. Previously, the code following an $EXIT label would have been executed before the error status and execution was returned to the caller.

If you really to want to execute the code after an explicit $EXIT label upon resuming from the error, you can specify it explicitly in the RESUME statement:

RESUME $EXIT

Note, however, that the WITH_ERROR clause is only allowed in conjunction with RESUME ENDFUNCTION / ENDPROCEDURE.