U ovom ćete uputstvu naučiti o iskazima try … catch … konačno za rukovanje iznimkama u JavaScriptu uz pomoć primjera.
U try
, catch
i finally
blokovi 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 console
je 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… catch
Izjava se koristi za obradu iznimke. Njegova sintaksa je:
try ( // body of try ) catch(error) ( // body of catch )
Glavni kod je unutar try
bloka. Tijekom izvršavanja try
bloka, ako se dogodi bilo kakva pogreška, ide u catch
blok. catch
Blok ručke pogreške kao i po ulovu izvještaja.
Ako se ne dogodi pogreška, kôd unutar try
bloka se izvršava i catch
blok 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 catch
bloku.
JavaScript pokušaj … uhvati … konačno Izjava
try… catch… finally
Izjavu možete koristiti i za rukovanje iznimkama. finally
Blok izvršava i kada kod teče uspješno ili ako dođe do pogreške.
Sintaksa try… catch… finally
bloka 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 catch
blok. finally
Blok ć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 catch
ili finally
izjavu nakon try
izjave. Inače, program će izbaciti pogrešku Uncaught SyntaxError: Nedostaje catch ili konačno nakon pokušaja.
Pokušajte JavaScript … uhvatite u setTimeout
try… catch
Neć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… catch
neće raditi jer je motor već napustio try… catch
konstrukciju i funkcija se izvršava kasnije.
try… catch
Blok 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);
throw
Izjavu s try… catch
izjavom također možete koristiti za korištenje korisnički definiranih iznimaka. Na primjer, određeni broj podijeljen je s 0 . Ako želite smatrati Infinity
pogreškom u programu, tada možete izbaciti korisnički definiranu iznimku pomoću throw
izraza za obradu tog stanja.
O Izjavi o bacanju JavaScripta naučit ćete u sljedećem vodiču.