Aplikace VLX běžící ve vlastním prostoru názvů - správa chyb v MDI prostředí

Přehled informací

Standardní správa chyb

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.

Správa chyb v aplikaci VLX běžící ve vlastním prostoru názvů

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*.

Příklad převzetí správy chyb pomocí funkce vl-exit-with-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 předání hodnoty do prostoru názvů dokumentu

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.