JavaScript prøv fangst

JavaScript prøv fangst

JavaScript er et translativt programmeringsspråk. Akkurat som alle andre språk, trenger en utvikler eller programmerer ofte å bry seg om feilhåndtering. Stort sett trenger en programmerer eller utvikler å håndtere feil mens du får tilgang til eller tilordner noen data til databasen. Så feilhåndtering er en viktig del av ethvert programmeringsprosjekt. Det er tre typer feil i programmering som en programmerer eller utvikler ofte må møte.

Syntaksfeil - En feil i å skrive kode mot syntaks for programmeringsspråk. For eksempel å savne en semikolon eller ikke følge konvensjonen om å lage og kalle funksjonen.

Logisk feil - En feil i logikkbygningen. For eksempel implementering av feil aritmetisk operasjon, noe som resulterer i feil utgang.

Runtime -feil - Feil oppstod under kjøretiden. Som å kalle en funksjon uten å erklære den.

Feilen vi får under kjøretiden er også kjent som en unntak. Eksepsjonell håndtering er veldig viktig. Fordi vi ikke kan kaste feilene og feilkodene med en gang. Vi må håndtere det. Så i denne artikkelen skal vi ha forståelse for hvordan vi kan håndtere unntak ved å bruke JavaScripts prøvefangstblokk. Vi vil også lære å kaste en tilpasset melding mot en feil og hvordan du bruker "endelig" -blokken med en prøvefangstblokk.

Syntaks

Syntaksen for bruk av en prøvefangstblokk er veldig enkel og enkel å bruke. Vi kan ganske enkelt bruke prøvefangstblokken som dette

prøv
// kode for å prøve eller teste
Kast // Kast en tilpasset feil å fange
fangst (feil)
// kode etter å ha fått en feil
endelig
// kode som i alle fall kjøres

I denne syntaksen skriver vi først noen kodelinjer i "prøv" -blokken for å teste. Hvis den koden blir utført eller bestått testen med hell. "Prøv" -blokken vil ikke kaste noen feil på "fangst" -blokken og utføre "endelig" -blokken. Ellers vil den kaste en feil på "fangst" -blokken der vi kan håndtere unntakene i henhold til den gitte feilen. Vi kan kaste en tilpasset feil til "fangst" -blokken ved å bruke "kast" nøkkelordet. "Endelig" -blokk blir utført i alle fall. Enten "prøv" -blokken kaster noe eller ikke. La oss prøve et par eksempler for å ha en bedre forståelse.

Eksempler

Først av alt, for å demonstrere den enkle og grunnleggende arbeidet med prøvefangstblokken. Vi prøver å ringe en funksjon uten å erklære den hvor som helst.

addisjon()

Det vil definitivt kaste en feil i konsollen


Men hvis vi prøver å kalle det i en prøveblokk nå

prøv
addisjon()
fangst (feil)

Det vil ikke vise noen feil i konsollen lenger fordi vi ikke skrev noen kode i fangstblokken for feil. Så vi kan endre og trøste feilmeldingen i fangstblokken nå.

prøv
addisjon()
fangst (feil)
konsoll.Logg ("Feilmelding =>" + Feil)

Vi kan se vår tilpassede melding i konsollen mot feilen.


Så dette er den helt grunnleggende bruken av prøvefangstblokken. La oss nå lære om å kaste en tilpasset feil i prøveblokken.

Kaste

Anta at vi ønsker å kaste en annen tilpasset feil på basen av forskjellige feil mens vi prøver. Vi kan kaste en tilpasset feil, at "funksjonsdefinisjon ikke eksisterer." Som dette

prøv
Kast ny feil ("Funksjonsdefinisjon eksisterer ikke")
fangst (feil)
konsoll.Logg ("Feilmelding =>" + feil)


Som du ser i utdataene, blir feilmeldingen nå endret til vår tilpassede feil kastet.

Protip

Anta at vi prøver å bruke denne prøvekampen på en asynkron funksjon. Det vil ikke fungere. Fordi motoren ville ha flyttet til neste linje, utført den endelige blokken, og den asynkrone funksjonen ville bli utført senere. For eksempel, hvis vi bruker Settimeout-funksjonen i en prøvefangstblokk.

prøv
setTimeout (() =>
addisjon();
, 3000)
fangst (feil)
konsoll.Logg ("Feilmelding =>" + feil)
endelig
konsoll.logg ("nådde" endelig "blokk")


Du kan observere at "endelig" -blokken blir utført først, og feilen blir kastet senere hvis vi tar en titt på feilen. Det er ikke feilen fra fangstblokken, men det er en original programmeringsfeil, noe som betyr at fangstblokken ikke blir utført fordi de prøver Block fant ingen feil.

Ok! Nå, hvis vi vil få det til å fungere. Vi må bruke prøvefangstblokken i Settimeout-funksjonen i stedet for utenfor. Så den sanne måten å implementere en asynkron funksjon med en prøvefangsblokk ville være slik.

setTimeout (() =>
prøv
addisjon();
fangst (feil)
konsoll.Logg ("Feilmelding =>" + feil)
endelig
konsoll.logg ("nådde" endelig "blokk")

, 3000)


Du kan observere i utgangen at etter forsinkelsen på 3 sekunder på grunn av Settimeout -funksjonen. Vi har fått feilmeldingen fra fangstblokken først, og deretter blir "endelig" -blokken utført.

Konklusjon

I denne artikkelen har vi lært å implementere prøvefangstblokken trinn for trinn i JavaScript på en så enkel og dyp måte at enhver nybegynner etter å ha lest denne artikkelen vil kunne bruke den hvor som helst han trenger. Så fortsett å lære og få erfaring i JavaScript med Linuxhint.com. Takk skal du ha!