Šajā apmācībā jūs uzzināsit par try… catch…, visbeidzot, paziņojumiem, kā rīkoties ar izņēmumiem JavaScript ar piemēru palīdzību.
Par try
, catch
un finally
bloki tiek izmantoti, lai rīkotos izņēmumu (tipa kļūdas). Pirms uzzināt par tiem, jums jāzina par kļūdām programmēšanā.
Kļūdu veidi
Programmējot kodā var būt divu veidu kļūdas:
Sintakses kļūda : kļūda sintaksē. Piemēram, ja jūs rakstāt consol.log('your result');
, iepriekš minētā programma rada sintakses kļūdu. Pareizrakstība console
ir kļūda iepriekš minētajā kodā.
Runtime Error : Šāda veida kļūda rodas programmas izpildes laikā. Piemēram,
nederīgas funkcijas vai mainīgā izsaukšana.
Šīs kļūdas, kas rodas izpildlaika laikā, sauc par izņēmumiem . Apskatīsim, kā jūs varat rīkoties ar šiem izņēmumiem.
JavaScript mēģiniet … noķert paziņojumu
try… catch
Apgalvojums tiek izmantots, lai apstrādātu izņēmumu. Tās sintakse ir:
try ( // body of try ) catch(error) ( // body of catch )
Galvenais kods ir try
bloka iekšpusē . Izpildot try
bloku, ja rodas kāda kļūda, tas nonāk catch
blokā. catch
Bloks apstrādā kļūdas, kā vienu nozvejas pārskatiem.
Ja nenotiek kļūda, kods try
blokā tiek izpildīts un catch
bloks tiek izlaists.
1. piemērs: attēlot nedeklarētu mainīgo
// 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); )
Rezultāts
NaN Kļūda ir notverta Kļūdas ziņojums: ReferenceError: a nav definēts
Iepriekš minētajā programmā mainīgais nav definēts. Mēģinot izdrukāt mainīgo, programma rada kļūdu. Šī kļūda ir catch
bloķēta.
JavaScript mēģiniet … noķert … beidzot paziņojums
try… catch… finally
Izrakstu var izmantot arī izņēmumu apstrādei. finally
Bloks izpilda gan tad kods darbojas sekmīgi vai ja rodas kļūda.
try… catch… finally
Bloka sintakse ir:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
2. piemērs: mēģiniet … noķert … visbeidzot piemērs
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'); )
Rezultāts
NaN Kļūda ir notverta Kļūdas ziņojums: ReferenceError: a nav definēts Visbeidzot izpildīs katru reizi
Iepriekš minētajā programmā rodas kļūda, un šo kļūdu uztver catch
bloks. finally
Bloks veiks jebkurā situācijā (ja programma darbojas veiksmīgi, vai, ja rodas kļūda).
Piezīme . Jums jāizmanto catch
vai finally
paziņojums pēc try
paziņojuma. Pretējā gadījumā programma iemetīs kļūdu Nenotverta sintakses kļūda: trūkst nozvejas vai visbeidzot pēc mēģinājuma.
JavaScript mēģiniet … noķeriet setTimeout
try… catch
Nebūs nozvejas izņēmums, ja tas noticis " laikiestatīta " kodu, tāpat setTimeout (). Piemēram,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Iepriekš minētais try… catch
nedarbosies, jo dzinējs jau ir atstājis try… catch
konstrukciju un funkcija tiek izpildīta vēlāk.
try… catch
Blokam ir jābūt iekšpusē, kuru funkcijas ir panākt izņēmumu iekšpusē noteikta laika funkcija. Piemēram,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
Varat arī izmantot throw
priekšrakstu kopā ar try… catch
priekšrakstu, lai izmantotu lietotāja definētus izņēmumus. Piemēram, noteikts skaitlis tiek dalīts ar 0 . Ja vēlaties uzskatīt Infinity
par kļūdu programmā, tad, izmantojot rīkojumu, varat izmest lietotāja definētu izņēmumu, throw
lai apstrādātu šo nosacījumu.
Jūs uzzināsiet par JavaScript mest paziņojumu nākamajā apmācībā.