fejl kastes af motoren, og undtagelser kastes af udvikleren. Men hvad betyder det præcist? I JavaScript er alle undtagelser simpelthen objekter. Mens de fleste undtagelser er implementeringer af den globale Fejlklasse, kan ethvert gammelt objekt kastes. Med dette i tankerne er der to måder at kaste en undtagelse på: direkte via et Fejlobjekt og gennem et brugerdefineret objekt.,
generiske undtagelser
mens den indbyggede Fejlklasse er ret veldefineret-inklusive ting som filnavn, linjenummer og stakspor for at nævne nogle få—når det kommer til stykket, er det vigtigste at notere meddelelsen. Den første—og ofte eneste—parameter, der skal overføres under Fejlinstantiering, meddelelsen er en menneskelig læsbar fejl, der ofte kan relateres direkte til slutbrugeren. At kaste en generisk undtagelse er næsten lige så simpelt som det lyder., Alt det kræver er at instantiere et undtagelsesobjekt-med den første parameter i Fejlkonstruktøren er fejlmeddelelsen – og derefter … “kaste” den.
throw new Error('Exception message');
fejl.kode vs. fejl.besked
det er vigtigt at bemærke her, at mens fejlmeddelelsen er den menneskelige læsbare fejldata, Node.js giver også en fejlkode, der identificerer den slags fejl, der bliver kastet. Denne værdi er nyttig, da den giver dig mulighed for programmatisk at tilpasse sig fejl, der kan kastes, uanset meddelelsen indeholdt i fejlen.,
mens fejlkoder generelt bruges til systemfejl, når der oprettes brugerdefinerede fejl ved at udvide fejlklassen (se brugerdefinerede undtagelser nedenfor for flere detaljer), kan en brugerdefineret kode defineres og bruges til mere strukturerede fejldefinitioner.
brugerdefinerede undtagelser
selvom det er muligt at kaste ethvert objekt, er bedste praksis at udvide Fejlobjektet med en ny klasse. I miljøer, der understøtter det, Dette giver mulighed for funktioner som den automatiske stak spor, der skal indgå i undtagelsen svar, som kan være afgørende, når det kommer til at diagnosticere problemer senere ned linjen.,
Med en brugerdefineret undtagelse objekt, der oprettes, er alt vi skal gøre er at smide det som enhver anden fejl:
throw new CustomException('Exception message');
en Anden stor fordel at udvide Fejl objekt, snarere end at smide en generel fejl, er der yderligere metadata, der kan være inkluderet med fejl og hentes senere. Dette kan være utroligt værdifuldt i fejlfinding og fejlrapportering, da nogle gange en almindelig tekstmeddelelse simpelthen ikke er nok. For eksempel kan du inkludere værdierne for lokale variabler eller stat, der kan hjælpe dig med at fejle problemet.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
Uden for de data, der indgår i Fejl objekt, når du bruger Styrtbøjle anmelderen for JavaScript yderligere data, som er inkluderet i rapporten samt. Dette omfatter kontekstuelle oplysninger som bro .seren og brugeren.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
at Skrive til konsollen
I JavaScript, konsol, hvor alle logs kan findes (mere om det i Hvor er JavaScript-Fejl Logget?). Heldigvis er det faktisk utroligt ligetil at skrive data til konsollen. For at opnå dette skal du blot ringe til konsollen.,log () metode, med den meddelelse, du gerne vil skrive til loggen.
console.log("Top level");
Leave a Reply