JavaScript pokušaj ... uhvati ... konačno Izjava

U ovom ćete uputstvu naučiti o iskazima try … catch … konačno za rukovanje iznimkama u JavaScriptu uz pomoć primjera.

U try, catchi finallyblokovi se koriste za rukovanje iznimkama (tip greške). Prije nego što naučite o njima, morate znati o vrstama pogrešaka u programiranju.

Vrste pogrešaka

U programiranju mogu postojati dvije vrste pogrešaka u kodu:

Sintaksna pogreška : pogreška u sintaksi. Na primjer, ako pišete consol.log('your result');, gornji program baca sintaksnu pogrešku. Pravopis consoleje pogreška u gornjem kodu.

Runtime Error : Ova vrsta pogreške događa se tijekom izvršavanja programa. Na primjer,
pozivanje neispravne funkcije ili varijable.

Te se pogreške koje se javljaju tijekom izvođenja nazivaju iznimkama . Sada, da vidimo kako se možete nositi s tim iznimkama.

Pokušajte JavaScript … izjava catch

try… catchIzjava se koristi za obradu iznimke. Njegova sintaksa je:

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

Glavni kod je unutar trybloka. Tijekom izvršavanja trybloka, ako se dogodi bilo kakva pogreška, ide u catchblok. catchBlok ručke pogreške kao i po ulovu izvještaja.

Ako se ne dogodi pogreška, kôd unutar trybloka se izvršava i catchblok se preskače.

Primjer 1: Prikaži neprijavljenu varijablu

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

Izlaz

 NaN Uhvaćena pogreška Poruka pogreške: ReferenceError: a nije definirana

U gornjem programu varijabla nije definirana. Kad pokušate ispisati varijablu, program izbacuje pogrešku. Ta je pogreška uhvaćena u catchbloku.

JavaScript pokušaj … uhvati … konačno Izjava

try… catch… finallyIzjavu možete koristiti i za rukovanje iznimkama. finallyBlok izvršava i kada kod teče uspješno ili ako dođe do pogreške.

Sintaksa try… catch… finallybloka je:

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

Primjer 2: pokušaj … uhvati … konačno Primjer

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

Izlaz

 NaN Uhvaćena pogreška Poruka pogreške: ReferenceError: a nije definirana Konačno će se izvršiti svaki put

U gore navedenom programu dogodi se pogreška i tu pogrešku uhvati catchblok. finallyBlok će izvršiti u bilo kojoj situaciji (ako se program pokreće uspješno ili ako dođe do pogreške).

Napomena : Morate koristiti izjavu catchili finallyizjavu nakon tryizjave. Inače, program će izbaciti pogrešku Uncaught SyntaxError: Nedostaje catch ili konačno nakon pokušaja.

Pokušajte JavaScript … uhvatite u setTimeout

try… catchNeće uhvatiti izuzetak ako se to dogodilo u „ vremenski ” kod, kao u setTimeout (). Na primjer,

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

Gore navedeno try… catchneće raditi jer je motor već napustio try… catchkonstrukciju i funkcija se izvršava kasnije.

try… catchBlok mora biti u toj funkciji uhvatiti izuzetak unutar vremenski funkciju. Na primjer,

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

throwIzjavu s try… catchizjavom također možete koristiti za korištenje korisnički definiranih iznimaka. Na primjer, određeni broj podijeljen je s 0 . Ako želite smatrati Infinitypogreškom u programu, tada možete izbaciti korisnički definiranu iznimku pomoću throwizraza za obradu tog stanja.

O Izjavi o bacanju JavaScripta naučit ćete u sljedećem vodiču.

Zanimljivi članci...