Ce face try / catch
Codul din try rulează normal. Dacă apare o eroare, execuția sare imediat în catch, care primește obiectul erorii. Mesajul erorii este în eroare.message.
Blocul finally este opțional și rulează mereu, cu sau fără eroare. Cu throw îți arunci propriile erori.
Exemple
Exemplul 1: Prinderea unui JSON invalid
try {
const date = JSON.parse("{nume: Ana}");
console.log(date);
} catch (eroare) {
console.log("JSON invalid:", eroare.name);
}
console.log("Programul continuă.");
Rezultat
JSON invalid: SyntaxError
Programul continuă.
Exemplul 2: Erori proprii cu throw și finally
function retrage(sold, suma) {
if (suma > sold) {
throw new Error("Fonduri insuficiente");
}
return sold - suma;
}
try {
console.log(retrage(100, 30));
console.log(retrage(100, 300));
} catch (eroare) {
console.log("Eroare: " + eroare.message);
} finally {
console.log("Operațiune încheiată");
}
Rezultat
70
Eroare: Fonduri insuficiente
Operațiune încheiată
Greșeli frecvente
- Pui un
catchgol, care ascunde eroarea. Măcar afișeaz-o cuconsole.error(eroare), altfel nu vei ști de ce nu merge ceva. - Aștepți ca
trysă prindă erorile dintr-unsetTimeoutsau dintr-o promisiune fărăawait. Ele apar mai târziu, după ce blocultrys-a terminat.
Comenzi înrudite
JSON.parse: Transformă un text JSON într-un obiect sau tablou JavaScript.async / await: Scrie cod asincron care se citește ca un cod obișnuit, de sus în jos.fetch: Trimite o cerere HTTP la un server și primește răspunsul, fără reîncărcarea paginii.