![]()
Standardně, všechny prostory jmen dokumentu jsou doplněny svojí vlastní chybovou funkcí *error*, která má následující definici:
(defun *error* (msg) (princ "error: ") (princ msg) (princ) )
VLX aplikace běžící v prostoru názvů sdílí standardně funkci pro správu chyb. Uživateli je však dána možnost doplnění vlastní logiky zprávy chyb do vaší aplikace.
![]()
Při zpuštění VLX aplikace ve vlastním prostoru jmen, můžeme použít standartní zprávu chyb nebo definovat správu chyb specifickou pro aplikaci.
Potřebujeme-li definovat vlastní správu chyb pro aplikaci VLX běžící ve vlastním prostoru názvů, převezmeme řízení správy chyb pomocí funkce vl-exit-with-error a předáme ji správě chyb v prostoru názvů dokumentu - funkci *error*. Následující příklad ukazuje použití funkce vl-exit-with-error pro předání řetězce funkci dokumentu *error*.
![]()
(defun *error* (msg) ... ; spuštěno ve VLX prostoru názvů/spouštěcím kontextu (vl-exit-with-error (strcat "Aplikace spadla! " msg)) )
VLX správce chyb *error* použije funkci vl-exit-with-value pro předání hodnoty do prostoru názvů dokumentu, z kterého byla aplikace VLX volána.
![]()
Příklad použití funkce vl-exit-with-value, která vrátí celočíselnou hodnotu 3 programu, který vyvolal VLX z prostoru názvů dokumentu:
(defun *error* (msg) ... ; spuštěno ve VLX prostoru názvů/spouštěcím kontextu (vl-exit-with-value 3) ) (vl-doc-export 'foo) (defun foo (x) (bar x) (print 3) ) (defun bar (x) (list (/ 2 x) x) )
Všechny instrukce, které jsou nevyřízeny během zpracování chyby, jsou zahozeny.
Pokud správa chyb vaší aplikace nepoužívá ani vl-exit-with-error ani vl-exit-with-value, je řízení předáno do příkazové řádky po spuštění správy chyb. Volání funkcí vl-exit-with-error a vl-exit-with-value je možné pouze v kontextu správy chyb VLX aplikace, v jiném případě způsobí volání chyb chybu.
![]()