void error(char* e)
Error is used to raise an error e. This is the equivalent of performing a non-local jump to the place where Catcherror was last called. If there was no such call, the system library catches the error and terminates the process.
Catcherror installs a recovery point for error handling. When called, it returns false. A further call to error would resume execution at the point of the call to catcherror, but this time it would appear to be returning nonzero. After catching an error, further calls to error with a nil argument would reraise the error, and calls to error with a non-nil argument would both reraise the error and change the reason for the error.
Noerror is to be called to remove a previously installed recovery point. It is wise to call both catcherror and noerror within the same function that uses the recovery point.
Errmsg returns the error string.