JavaScripti proovimine ... püüdmine ... lõpuks avaldus

Selles õpetuses saate teada proovide… püüdke… lõpuks lausete kohta, kuidas näiteid kasutades JavaScripti erandeid käsitleda.

try, catchJa finallyplokid kasutatakse erandite käsitlemiseks (tüüp viga). Enne nende kohta õppimist peate teadma vigade tüüpe programmeerimisel.

Vigade tüübid

Programmeerimisel võib koodis olla kahte tüüpi vigu:

Süntaksiviga : viga süntaksis. Näiteks kui kirjutate consol.log('your result');, viskab ülaltoodud programm süntaksivea. Õigekiri consoleon viga ülaltoodud koodis.

Käitusaja tõrge : seda tüüpi viga ilmneb programmi käivitamisel. Näiteks
vale funktsiooni või muutuja kutsumine.

Neid tõrkeid, mis ilmnevad käituse ajal, nimetatakse eranditeks . Vaatame nüüd, kuidas saate nende eranditega toime tulla.

JavaScripti proovige … püüdke avaldus

try… catchAvaldus kasutatakse hakkama erandeid. Selle süntaks on:

 try ( // body of try ) catch(error) ( // body of catch )

Põhikood on tryploki sees . Bloki käivitamisel tryläheb tõrke ilmnemisel catchplokki. catchPlokk käepidemed vead ühe saagi avaldusi.

Kui viga ei toimu, trykäivitatakse plokis olev kood ja catchplokk jäetakse vahele.

Näide 1: deklareerimata muutuja kuvamine

 // 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); )

Väljund

 NaN Viga püütud Veateade: ReferenceError: a pole määratletud

Ülaltoodud programmis pole muutujat määratletud. Kui proovite muutujat printida, viskab programm vea. See viga on catchblokeeritud.

JavaScripti proovimine … saak … lõpuks avaldus

Lauset saab kasutada ka try… catch… finallyerandite käsitlemiseks. finallyPlokk täidab nii kui kood töötab edukalt või kui tekib viga.

Bloki süntaks try… catch… finallyon:

 try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )

Näide 2: proovige … püüdke … lõpuks näide

 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'); )

Väljund

 NaN Viga tabatud Veateade: ReferenceError: a pole määratletud Lõpuks käivitatakse iga kord

Ülaltoodud programmis ilmneb tõrge ja see viga on catchblokeeritud. finallyPlokk täidab igas olukorras (kui programm töötab edukalt või kui tekib viga).

Märkus : Sa pead kasutamise catchvõi finallyavalduse pärast tryavalduse. Vastasel juhul viskab programm vea Uncaught SyntaxError: Püütakse puudu või lõpuks pärast proovimist.

JavaScripti proovige … püüdke setTimeoutis

try… catchEi saagi, välja arvatud juhul, kui see juhtus " ajastatud " koodi, nagu setTimeout (). Näiteks,

 try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )

Ülaltoodu try… catchei toimi, kuna mootor on try… catchkonstruktsioonist juba lahkunud ja funktsioon käivitatakse hiljem.

try… catchPlokk peab olema sees, et funktsioon püüda erand sees ajastatud funktsiooni. Näiteks,

 setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);

Samuti saate avaldist kasutada throwkoos try… catchavaldusega kasutaja määratud erandite kasutamiseks. Näiteks jagatakse teatud arv 0-ga . Kui soovite lugeda Infinityprogrammi veana, võite throwselle tingimuse käsitlemiseks visata lause abil kasutaja määratletud erandi .

JavaScripti viskeavalduse kohta saate teada järgmises õpetuses.

Huvitavad Artiklid...