Gestione degli errori con TRY/SHOW/YET, moduli standard e file .line.
| Codice | Causa |
|---|---|
VAR_NOT_FOUND | Variabile inesistente |
TYPE_ERROR | Tipo di dato non valido |
INVALID_CONVERSION | Conversione di tipo non possibile |
CONST_MODIFY | Tentativo di modifica di una costante (STAY) |
DIV_BY_ZERO | Divisione per zero |
MATH_ERROR | Operazione matematica non valida |
BOOL_EXPECTED | Atteso valore booleano |
NUMBER_EXPECTED | Atteso valore numerico |
STRING_EXPECTED | Attesa stringa |
LIST_NOT_FOUND | Lista inesistente |
LIST_OUT_OF_RANGE | Indice fuori dai limiti della lista |
LIST_EMPTY | Lista vuota |
TAG_NOT_FOUND | Tag inesistente nella lista |
DUPLICATE_TAG | Tag duplicato non consentito |
FUNC_NOT_FOUND | Funzione inesistente |
INVALID_ARGUMENTS | Argomenti non validi |
RETURN_NOT_ALLOWED | Uso di return non consentito |
THEN_ARGUMENTS | Uso di argomenti in un blocco THEN |
IF_NOT_FOUND | IF block inesistente |
GO_INVALID | GO block non valido |
GO_LOOP_ERROR | Loop infinito o non valido |
INPUT_ERROR | Errore nell'input |
OUTPUT_ERROR | Errore di output |
SYNTAX_ERROR | Errore di sintassi |
ESCAPE_ERROR | Escape non valido |
MOD_NOT_FOUND | Modulo non trovato |
UNKNOWN_ERROR | Errore sconosciuto |
Permettono di gestire errori di esecuzione senza interrompere bruscamente il programma.
TRY nome_try
...codice che potrebbe dare errore...
TREND
SHOW nome_show @nome_try
...eseguito solo se c'è stato un errore...
SEND
YET @nome_try
...eseguito sempre (con o senza errore)...
YEND
SHOW e YET sono facoltativi.
All'interno di SHOW sono disponibili due variabili speciali — esistono solo lì:
| Variabile | Tipo | Contenuto |
|---|---|---|
ERRCODE | numerale | 1 per tutti gli errori gestiti da LINE |
ERRMSG | stringa | Messaggio descrittivo dell'errore |
TRY prova
OUT @inesistente
TREND
SHOW gestisci @prova
TALK @ERRCODE
TALK @ERRMSG
SEND
YET @prova
TALK Fine operazione
YEND
TRY non può essere annidato.ERRMSG e termina l'esecuzione.I moduli sono collezioni di funzioni pronte all'uso. Si importano con TAKE:
TAKE math
#r = math_sqrt(9)
TALK @r >> 3
Le funzioni di un modulo si chiamano con il formato nomemodulo_nomefunzione().
Per vedere l'elenco di tutti i moduli disponibili, esegui .MODS in un file vuoto. Per vedere le funzioni di un modulo specifico, usa .MATH, .STR, ecc.
| Modulo | Contenuto |
|---|---|
math | Funzioni matematiche (sqrt, abs, floor, ceil, pow, sin, cos…) |
str | Manipolazione stringhe (len, sub, upper, lower, replace…) |
list | Operazioni su liste (len, has, sort, rev, shuffle…) |
rand | Casualità (int, float, pick, shuffle, dice…) |
io | Input/output avanzato (time, date…) |
type | Verifica e conversione di tipi |
conv | Conversioni (hex, bin, oct, tonum…) |
num | Funzioni numeriche avanzate (fmt, fib, fact, gcd, prime…) |
Un programma LINE viene salvato con estensione .line ed eseguito dall'interprete.