Šioje pamokoje sužinosite apie „try… catch…“ galiausiai teiginius, kaip tvarkyti išimtis „JavaScript“ naudojant pavyzdžius.
Į try
, catch
ir finally
blokai yra naudojami apdoroti išimtis (a klaidos rūšis). Prieš sužinodami apie juos, turite žinoti apie klaidų tipus programuojant.
Klaidų tipai
Programuojant kode gali būti dviejų tipų klaidos:
Sintaksės klaida : sintaksės klaida . Pavyzdžiui, jei rašote consol.log('your result');
, aukščiau pateikta programa išmeta sintaksės klaidą. Rašyba console
yra klaida aukščiau pateiktame kode.
Klaida : tokio tipo klaida įvyksta vykdant programą. Pavyzdžiui,
iškvietus netinkamą funkciją ar kintamąjį.
Šios klaidos, įvykusios vykdymo metu, vadinamos išimtimis . Dabar pažiūrėkime, kaip galite tvarkyti šias išimtis.
„JavaScript“ pabandykite … sugauti pareiškimą
try… catch
Pareiškimas yra naudojama tvarkyti išimtis. Jo sintaksė yra:
try ( // body of try ) catch(error) ( // body of catch )
Pagrindinis kodas yra try
bloko viduje . Vykdant try
bloką, jei įvyksta kokių nors klaidų, jis pereina į catch
bloką. catch
Blokas rankenos klaidas kaip už sugautų žuvų kiekio ataskaitas.
Jei klaidos neįvyksta, try
bloko viduje vykdomas kodas ir catch
blokas praleidžiamas.
1 pavyzdys: rodyti nedeklaruotą kintamąjį
// 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); )
Rezultatas
NaN Klaida sugauta Klaidos pranešimas: ReferenceError: a nėra apibrėžtas
Pirmiau pateiktoje programoje kintamasis nėra apibrėžtas. Kai bandote spausdinti kintamąjį, programa išmeta klaidą. Ši klaida užfiksuota catch
bloke.
„JavaScript“ pabandykite … pagauti … pagaliau pareiškimas
Taip pat galite naudoti try… catch… finally
teiginį tvarkydami išimtis. finally
Blokas vykdo tiek, kai kodas veikia sėkmingai, arba jei įvyksta klaida.
try… catch… finally
Bloko sintaksė yra:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
2 pavyzdys: pabandykite … pagauti … pagaliau pavyzdys
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'); )
Rezultatas
NaN Klaida sugauta Klaidos pranešimas: ReferenceError: a nėra apibrėžtas Galiausiai bus vykdoma kiekvieną kartą
Pirmiau pateiktoje programoje įvyksta klaida ir tą klaidą sugauna catch
blokas. finally
Blokas atliks bet kokioje situacijoje (jei programa veikia sėkmingai, arba jei įvyksta klaida).
Pastaba : jums reikia naudoti catch
arba finally
teiginį po try
teiginio. Priešingu atveju programa išmes klaidą Nepagauta sintaksės klaida: trūksta sugavimo arba galiausiai po bandymo.
„JavaScript“ pabandykite … gaukite „setTimeout“
try… catch
Nebus sugauti išimtis, jei tai atsitiko " laikas " kodą, kaip ir setTimeout (). Pavyzdžiui,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Aukščiau išvardyti try… catch
dalykai neveiks, nes variklis jau paliko try… catch
konstrukciją ir funkcija bus vykdoma vėliau.
try… catch
Blokas turi būti, kad funkcijos viduje sugauti viduje trukmės funkcija išimtis. Pavyzdžiui,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
Taip pat galite naudoti throw
teiginį kartu su try… catch
teiginiu, kad naudotumėte vartotojo apibrėžtas išimtis. Pavyzdžiui, tam tikras skaičius padalijamas iš 0 . Jei norite laikyti Infinity
klaidą programoje, tada naudodami throw
teiginį galite mesti vartotojo apibrėžtą išimtį šiai sąlygai tvarkyti.
Apie „JavaScript“ metimo pareiškimą sužinosite kitoje pamokoje.