Feil blir kastet ut av motoren, og unntak blir kastet av utbygger. Men hva betyr det? I JavaScript, alle unntak er rett og slett objekter. Mens de fleste av unntakene er implementeringer av den globale Feil klasse, noen gamle objektet kan bli kastet. Med dette i bakhodet, det er to måter å kaste et unntak: direkte via en Feil objekt, og gjennom en egendefinert objekt.,
Generisk unntak
Mens den innebygde Feil klasse er ganske godt definert, inkludert slike ting som filnavn, linje tall, og stack trace for å nevne noen—når det kommer ned til det, er det viktigste å ta notat av meldingen. Den første—og ofte eneste—parameteren for å bli vedtatt i løpet av Feil oppretting, meldingen er en lesbar feil det kan ofte være knyttet direkte til sluttbruker. Å kaste et generelt unntak er nesten like enkelt som det høres ut., Alt det tar å instantiate et unntak objekt—med den første parameteren for Feil konstruktør blir feilmeldingen—og så… «kaste» den.
throw new Error('Exception message');
feil.koden vs. feil.melding
Det er viktig å merke seg her at, mens feilmeldingen er lesbare feil data, Node.js gir også en feil kode som identifiserer den type feil som blir kastet. Denne verdien er nyttig som det tillater deg å programmatisk tilpasse seg til feil som kan kastes, uavhengig av meldingen finnes i feilen.,
Mens feilkoder er vanligvis brukt til systemfeil, når du oppretter egendefinerte feil ved å utvide feil klasse (se Tilpasset unntak nedenfor for mer informasjon), en egendefinert kode kan defineres og brukes til mer strukturert feil definisjoner.
Custom unntak
Mens det er mulig å kaste en gjenstand, beste praksis er å utvide Feil objekt med en ny klasse. I miljøer som støtter det, dette gjør for funksjoner som automatisk stack trace for å bli inkludert i det unntak svar, som kan være avgjørende når det gjelder å diagnostisere problemer senere ned linjen.,
Med en tilpasset unntak objekt skapt, alt vi trenger å gjøre er å kaste det som alle andre feil:
throw new CustomException('Exception message');
en Annen stor fordel å utvide Feil objekt, snarere enn å kaste en generell feil, er at metadata kan være inkludert med feil og hentes senere. Dette kan være utrolig verdifullt i feilsøking og feilrapportering, som noen ganger en vanlig tekstmelding rett og slett ikke nok. Du kan For eksempel inneholde verdier av lokale variabler eller tilstand som kan hjelpe deg med å feilsøke problemet.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
Utsiden av data inkludert i Feil objekt, når du bruker den Rollbar varsleren for JavaScript ytterligere data er inkludert i rapporten som godt. Dette inkluderer kontekstuell informasjon som nettleseren og brukeren.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
Skrive til konsollen
I JavaScript-konsollen er der alle loggene kan bli funnet (mer om det i Hvor er JavaScript-Feil Logget?). Heldigvis, faktisk skriver data til konsollen er utrolig grei. For å oppnå dette, er det bare ringe konsollen.,log () – metoden, med meldingen du ønsker å skrive til loggen.
console.log("Top level");
Leave a Reply