| (*error* string) | ||
| Argumenty: | ||
|
string
|
- řetězec popis chyby | |
| Popis: | ||
| - uživatelem definovaná funkce pro zprávu chyby | ||
| Návratová hodnota: | ||
| - nemá návratovou hodnotu, jen když se používá ve spojení s funkcí vl_exit_with_value | ||
| Příklady: | ||
| Následující funkce provádí stejnou funkci jako standardní správce chyb AutoLISPu - vypíše "error:" následovaný popisem chyby: | |||||
| (defun *error* (msg) | |||||
| (princ "error: ") | |||||
| (princ msg) | |||||
| (princ) | |||||
| ) | |||||
| (exit) | ||
| Popis: | ||
| - ukončí aktuální aplikaci | ||
| - vrátí chybovou zprávu quit/exit abort a vrátí se do příkazové řadky AutoCADu | ||
| (quit) | ||
| Popis: | ||
| - ukončí aktuální aplikaci | ||
| - vrátí chybovou zprávu quit/exit abort a vrátí se do příkazové řadky AutoCADu | ||
| (vl-catch-all-apply 'function list) | ||
| Argumenty: | ||
|
'function
|
- funkce, argumentem může být buď defun nebo lambda výraz | |
|
list
|
- seznam obsahující argumty, které mají být předány funkci | |
| Popis: | ||
| - předá seznam argumentů dané funkce a odchytí všechny výjimky | ||
| Návratová hodnota: | ||
| - výsledek volání funkce - bylo-li volání úspěšné | ||
| - object chyby - v případě, že je volání neúspěšné | ||
| Příklady: | ||
| Je-li volání funkce vl-catch-all-apply úspěšně dokončené má stejnou funkci jako fce apply: | ||
| _$ (setq catchit (apply '/ '(50 5))) | ||
| vrací 10 | ||
| _$ (setq catchit (vl-catch-all-apply '/ '(50 5))) | ||
| vrací 10 | ||
| Hlavní síla funkce vl-catch-all-apply je odchycení chyby a pokračování ve zpracování: | ||
| _$ (setq catchit (apply '/ '(50 0))) | ||
| vrací ; error: divide by zero a ukončí běh programu | ||
| _$ (setq catchit (vl-catch-all-apply '/ '(50 0))) | ||
| vrací objekt chyby #<catch-all-apply-error> | ||
| K prohlédnutí vráceného chybového objektu použijeme funkci vl-catch-all-error-message se jménem objektu: | ||
| _$ (vl-catch-all-error-message catchit) | ||
| vrací "divide by zero" | ||
Podívejte se na funkci vl-catch-all-error-p.
| (vl-catch-all-error-message error-obj) | ||
| Argumenty: | ||
|
error-obj
|
- objekt chyby vrácený funkcí vl-catch-all-apply | |
| Popis: | ||
| - určí kdy argument je objekt chyby vrácený od vl-catch-all-apply | ||
| Návratová hodnota: | ||
| - řetězec - obsahující chybovou zprávu | ||
| Příklady: | ||
| Dělení nulou s použitím vl-catch-all-apply: | ||
| _$ (setq catchit (vl-catch-all-apply '/ '(50 0))) | ||
| vrací objekt chyby #<catch-all-apply-error> | ||
| Funkce vl-catch-all-apply odchytí všechny výjimky a v případě chyby vrátí chybový objekt. K prohlédnutí vráceného chybového objektu použijeme funkci vl-catch-all-error-message se jménem objektu: | ||
| _$ (vl-catch-all-error-message catchit) | ||
| vrací "divide by zero" | ||
Podívej se na funkci vl-catch-all-error-p.
| (vl-catch-all-error-p arg) | ||
| Argumenty: | ||
|
arg
|
- libovolný argument | |
| Popis: | ||
| - určí kdy argument je objekt chyby vrácený od vl-catch-all-apply | ||
| Návratová hodnota: | ||
| - T - je-li argument objektem chyby vrácený funkcí vl-catch-all-apply | ||
| - nil - v opačném případě | ||
| Příklady: | ||
| Dělení nulou s použitím vl-catch-all-apply: | ||
| _$ (setq catchit (vl-catch-all-apply '/ '(50 0))) | ||
| vrací objekt chyby #<catch-all-apply-error> | ||
| Použití funkce vl-catch-all-error-p pro zjištění zda hodnota vrácená funkcí vl-catch-all-apply je objekt chyby: | ||
| _$ (vl-catch-all-error-p catchit) | ||
| vrací T | ||
Podívejte se na funkci vl-catch-all-error-message.