The sequence for an error is usually:
errordict and executing this procedure.errordict procedure calls signalerror, passing it the error name.signalerror takes snapshots of the stacks, saving the snapshots in $error, and then calls stop.stop pops the exec stack until the nearest enclosing stopped context established by the stopped operator.stopped { errordict /handleerror get exec } if which was called by the startup code to bracket the whole user program.handleerror uses the information in $error to print an error report.