În acest tutorial, veți afla despre try … catch … în cele din urmă declarații pentru a gestiona excepțiile în JavaScript cu ajutorul exemplelor.
De try
, catch
și finally
blocurile sunt folosite pentru a manipula excepții (un tip de eroare). Înainte de a afla despre ele, trebuie să știți despre tipurile de erori din programare.
Tipuri de erori
În programare, pot exista două tipuri de erori în cod:
Eroare de sintaxă : Eroare în sintaxă. De exemplu, dacă scrieți consol.log('your result');
, programul de mai sus aruncă o eroare de sintaxă. Ortografia lui console
este o greșeală în codul de mai sus.
Runtime Error : Acest tip de eroare apare în timpul executării programului. De exemplu,
apelarea unei funcții nevalide sau a unei variabile.
Aceste erori care apar în timpul rulării se numesc excepții . Acum, să vedem cum puteți gestiona aceste excepții.
JavaScript încercați … capturați declarația
Instrucțiunea try… catch
este utilizată pentru a gestiona excepțiile. Sintaxa sa este:
try ( // body of try ) catch(error) ( // body of catch )
Codul principal se află în interiorul try
blocului. În timpul executării try
blocului, dacă apare o eroare, acesta merge la catch
bloc. catch
Blocul se ocupă de erorile ca pe declarațiile de captură.
Dacă nu apare nicio eroare, codul din interiorul try
blocului este executat și catch
blocul este omis.
Exemplul 1: Afișează variabila nedeclarată
// program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Ieșire
NaN O eroare surprinsă Mesaj de eroare: ReferenceError: a nu este definit
În programul de mai sus, o variabilă nu este definită. Când încercați să imprimați variabila a, programul aruncă o eroare. Această eroare este prinsă în catch
bloc.
JavaScript încearcă … prinde … în cele din urmă Declarație
De asemenea, puteți utiliza try… catch… finally
instrucțiunea pentru a gestiona excepțiile. finally
Blocul execută atât atunci când codul se execută cu succes sau în cazul în care apare o eroare.
Sintaxa try… catch… finally
blocului este:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
Exemplul 2: încercați … prindeți … în cele din urmă Exemplu
const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )
Ieșire
NaN O eroare surprinsă Mesaj de eroare: ReferenceError: a nu este definit În cele din urmă se va executa de fiecare dată
În programul de mai sus, apare o eroare și această eroare este prinsă de catch
bloc. finally
Blocul se va executa în orice situație ( în cazul în care programul se execută cu succes sau în cazul în care apare o eroare).
Notă : Trebuie să utilizați catch
sau finally
declarație după try
declarație. În caz contrar, programul va arunca o eroare Uncaught SyntaxError: Lipsește captura sau, în cele din urmă, după încercare.
JavaScript încearcă … captează setTimeout
Nu try… catch
va prinde excepția dacă s-a întâmplat în codul „ temporizat ”, ca în setTimeout (). De exemplu,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Cele de mai sus try… catch
nu vor funcționa, deoarece motorul a părăsit deja try… catch
construcția și funcția este executată mai târziu.
try… catch
Blocul trebuie să fie în interiorul acestei funcții pentru a prinde o excepție în interiorul unei funcții temporizat. De exemplu,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
De asemenea, puteți utiliza throw
instrucțiunea cu try… catch
instrucțiunea pentru a utiliza excepții definite de utilizator. De exemplu, un anumit număr este împărțit la 0 . Dacă doriți să considerați Infinity
o eroare în program, atunci puteți arunca o excepție definită de utilizator folosind throw
instrucțiunea pentru a gestiona acea condiție.
Veți afla despre declarația JavaScript throw în următorul tutorial.