Il blocco "try/catch"

In questo video parleremo del "try/catch" di JavaScript.
Questo costrutto sintattico è presente in molti linguaggi di programmazione e si usa questo quando si devono intercettare e maneggiare possibili errori per evitare che l'applicazione vada in "crash". Il codice da eseguire viene inserito dentro al blocco "try", nel caso che qualcosa non funzioni come aspettato, l'errore viene catturato dal "catch" e il codice al suo interno viene eseguito.
JavaScript permette l'uso del blocco "try/catch" anche nella sua variante con "finally".
Alla fine del video vedremo anche una maniera per creare errori "customizzati" usando la keyword "throw".

Trascrizione: (click per espandere)
salve a tutti in questo video parlerò
del costrutto sintattico try catch è un
costrutto che serve per maneggiare gli
errori dentro al codice faccio subito un
esempio diciamo che io delle righe di
codice dove voglio andare a visualizzare
ciao dentro la mia console
poi voglio andare a visualizzare il
valore della variabile x e poi
voglio andare a visualizzare un'altra
stringa che è mondo e vediamo cosa
succede come vedete javascript che che
legge e riga per riga mi arriva la prima
riga della prima istruzione e me la
visualizza ciao
poi la seconda istruzione dice errore
la x non è definita e tutte le righe
sottostanti vengono ignorate perché
javascript e si è bloccato qui si dice
che è andato in crash e quindi tutto il
tutto l'eventuale codice non viene
eseguito per risolvere questo errore si
usa appunto il try catch allora io non
lo sviluppatore non vuole risolvere
questo semplice errore perché lo vede
subito quando scrive il codice vuole
andare a inglobare dentro un try catch
codice di cui al momento non sa se può
essere
può andare in errore oppure no ad
esempio quando io lo sviluppatore ha a
che fare con valori magari inseriti da
un utente o valori che arrivano dal
server nel momento in cui lui sta
scrivendo il codice non sa se questi
valori saranno esatti oppure no quindi
può andare a inglobare questo questo
pezzo di codice dentro a un try catch in
maniera che javascript non va in crash e
il codice viene eseguito in qualche
maniera javascript riesce a maneggiare
l'errore andiamo a fare subito un
esempio al orientando la sintassi del
try/catch è questa qui keyword try
parentesi graffe dove si va a inserire
codice da eseguire e poi c'è il catch
con che prende un argomento err che
l'argomento errore e codice da tipo di
errore tipo di errore ecco allora come
vedete io dentro alle parentesi graffe
del blocco try vado ad inserire il codice
da eseguire se qualcosa va male
automaticamente javascript e mi
visualizza l'errore però non si bloccano
non va in crash e eventuale codice fuori
sottostante viene eseguito lo stesso vi
faccio vedere l'esempio di primo allora
console log x quindi è lo stesso
tipo di errore qui vado a fare l'output
dell'errore errore e va dove c'e il tipo
di errore questo qui è il tipo di errore
e poi vado a mettere altro codice fuori
dal try catch
allora è lo stesso esempio di prima solo
che prima tutto si era fermato quando
javascript era andato in un errore
adesso andiamo a vedere
ecco qui allora javascript entra dentro
il blocco try
c'è un errore quindi viene eseguito
questo questa riga di codice qui ed è
questa qui
eccolo qui errore e poi c'è il tipo di
errore x is not defined e poi javascript
continua normalmente col codice fuori dal
try catch in questa maniera javascript
maneggia un po l'errore non crasha e
riesce ad eseguire tutto il codice della
pagina anche se appunto c'è un errore
volendo si può c'è una variante in cui
si usa la keyword finally e si e viene
eseguito codice
facciamo così
questo qua posso mettere codice codice try
allora se tutto va bene mi viene
eseguito il codice dentro al try e il
codice dentro al finally il codice
dentro al finally viene eseguito sia se
tutto vada bene che che che ci sia un
errore dentro al try e quindi ci sia e la
visualizzazione del catch
andiamo a vedere un esempio allora qui
il codice dentro al try andava tutto
bene non c'erano errori quindi comunque
il codice dentro al finally mi viene
eseguito se ci fosse stato un errore
come in questo caso mi viene eseguito il
codice dentro al catch è anche il codice
dentro al finally ecco qui quindi
anziché quelle quindi il codice dentro
al finally viene eseguito in entrambe le
situazioni che tutto vada bene o che
tutto non vada bene ci sono c'è anche
una maniera di creare un
un tipo di errore custom come vedete qui
io e javascript che mi stampa il tipo di
errore e potrebbe essere non molto
chiaro per tutti eccetera
io posso andare a creare un errore
personalizzato faccio vedere come in
maniera molto velocemente
allora diciamo che io questo trai qui e
lascio che un utente mi inserisca un
numero numero usando il prompt come
avete già visto
ok poi io vado a usare un "if" allora
se voglio non voglio vedere se il numero
è veramente un numero altrimenti
fammi
l'output dell'errore allora io vado a
usare la funzione is not a number che
avete già visto quindi is not the number
e dentro ci metto numero allora se io
lascio così is not a number se io passo
dentro se l'utente inserisce veramente
un numero questa qui sarà falsa perché è
un numero quindi is not a number ritorno
falso quindi io vado a negarla e con
l'operatore di negazione e vado a fare
la output console log il tuo numero e
metto num quindi se l'utente inserisce
veramente un numero questa riga di
codice viene eseguita altrimenti
keyword throw e qui inserisco il mio errore
customizzato errore non hai inserito un
numero eccolo qui quando javascript
incontra la parola throw automaticamente
lei considera che ci sia stato un errore
e mi entra dentro al catch allora
mettiamo catch errore console log e poi
vado a vedere l'errore l'errore
customizzato mi verrà visualizzato come
err qui quindi mi viene passato come
parametro dentro al catch andiamo a
vedere
allora io provo a inserire un numero e
funziona perfettamente il tuo numero 5
quindi questa riga di codice è eseguita
non ci sono errori e javascript è
contento così
se vado a inserire una lettera proviamo
la "t"
ho visto un errore quindi ho visto un
errore è questo pezzo di riga di codice
e poi c'è il mio errore personalizzato
errore non ha inserito il numero errore
non essere tenuto quindi quando
javascript incontra un throw
automaticamente dice ho qui c'è stato un
errore
io posso personalizzare il messaggio e e
mi viene eseguito in codice dentro al
catch
con questo è tutto ci sentiamo la
prossima ciao
File del video: