Intercettazione delle eccezioni in JavaScript
Per intercettare le eccezioni si utilizza
il costrutto try-catch. Ha la
seguente sintassi:
try {
// codice
} catch (error) {
// gestione dell'errore
}
Nel blocco try va inserito il codice
che potrebbe generare un'eccezione. Se
durante l'esecuzione di questo codice si verifica
una situazione eccezionale, il nostro script non
si interromperà con un errore nella console, ma inizierà ad eseguire
il codice del blocco catch.
In questo blocco dobbiamo reagire in modo adeguato
all'errore. Ad esempio,
se volevamo inviare alcuni dati
tramite internet e internet non funziona, nel
blocco catch possiamo gestire la
situazione: possiamo, ad esempio, mostrare un messaggio
all'utente, oppure possiamo riprovare dopo un po'
a inviare i dati - nel caso in cui
internet nel frattempo abbia ripreso a funzionare.
Se durante l'esecuzione del blocco try non si verificano
situazioni eccezionali, allora
il codice utile verrà semplicemente eseguito, mentre il codice del
blocco catch no.
Ad esempio, proviamo a parsare un JSON e in caso di sua non correttezza mostriamo un messaggio a schermo:
try {
let data = JSON.parse('{1,2,3,4,5}');
} catch (error) {
alert('Impossibile eseguire l\'operazione di parsing JSON');
}
È dato il codice che salva una certa stringa nella memoria locale:
let str = 'una certa stringa';
localStorage.setItem('key', str);
Avvolgi questo codice nel costrutto try-catch.
Nel blocco catch mostra un messaggio
sull'overflow della memoria.
Verifica il funzionamento
del tuo codice per una stringa di dimensione inferiore a 5
MB e per una stringa di dimensione maggiore.
È dato un JSON, all'interno del quale è memorizzato un array.
Se questo JSON è corretto, mostra gli elementi
dell'array come una lista ul. Se invece
il JSON non è corretto, mostra a schermo un messaggio
che sulla pagina è avvenuto un errore.