For VLX applications executing within their own namespace, you can either use the default error function or you can define an error handler specifically for the application.
vl-exit-with-error function to pass control from the VLX error handler to the document namespace's *error* function. The following example uses vl-exit-with-error to pass a string to the document's *error* function:
If you define an error handler for a VLX running in its own namespace, you can call the(defun *error* (msg)
... ; processing in VLX namespace/execution context
(vl-exit-with-error (strcat "My application bombed! " msg)))
*error* handler can use the vl-exit-with-value function to return a value to the document namespace from which the VLX was invoked. The following example uses vl-exit-with-value to return the integer value 3 to the program that called the VLX from the document namespace:
A VLX(defun *error* (msg)
... ; processing in VLX-T namespace/execution context
(vl-exit-with-value 3))
(vl-doc-export 'foo)
(defun foo (x)
(bar x)
(print 3))
(defun bar (x) (list (/ 2 x) x))
Any instructions pending at the time the error occurred are flushed.
vl-exit-with-error or vl-exit-with-value, then control returns to the command prompt after execution of the error handler. You can only call vl-exit-with-error and vl-exit-with-value in the context of a VLX application's error handler; it is an error to invoke these functions in any other situation.
If your VLX namespace error handler does not use either