erorile sunt aruncate de motor, iar excepțiile sunt aruncate de dezvoltator. Dar ce înseamnă asta mai exact? În JavaScript, toate excepțiile sunt pur și simplu obiecte. În timp ce majoritatea excepțiilor sunt implementări ale clasei de eroare globale, orice obiect vechi poate fi aruncat. Având în vedere acest lucru, există două moduri de a arunca o excepție: direct printr-un obiect de eroare și printr-un obiect personalizat.,
excepții generice
în timp ce clasa de eroare încorporată este destul de bine definită-inclusiv lucruri precum numele fișierului, numărul liniei și urmărirea stivei pentru a numi câteva—atunci când vine vorba de acesta, cel mai important lucru pe care trebuie să—l notați este mesajul. Primul—și adesea numai-parametru care trebuie transmis în timpul instanțierii erorilor, mesajul este o eroare care poate fi citită de om, care poate fi adesea legată direct de utilizatorul final. Aruncarea unei excepții generice este aproape la fel de simplă pe cât pare., Tot ce trebuie este să instantiați un obiect de excepție—cu primul parametru al constructorului de eroare fiind mesajul de eroare—și apoi… „aruncați-l”.
throw new Error('Exception message');
eroare.Cod vs. eroare.mesaj
este important să rețineți aici că, în timp ce mesajul de eroare este datele de eroare care pot fi citite de om, nod.js oferă, de asemenea, un cod de eroare care identifică tipul de eroare care este aruncat. Această valoare este utilă deoarece vă permite să vă adaptați programatic la Erorile care pot fi aruncate, indiferent de mesajul conținut în eroare.,
deși codurile de eroare sunt utilizate în general pentru erorile de sistem, atunci când se creează erori personalizate prin extinderea clasei de erori (consultați excepțiile personalizate de mai jos pentru mai multe detalii), un cod personalizat poate fi definit și utilizat pentru definiții de erori mai structurate.
excepții personalizate
deși este posibil să aruncați orice obiect, cea mai bună practică este extinderea obiectului de eroare cu o nouă clasă. În mediile care o acceptă, acest lucru permite ca funcții precum urmărirea automată a stivei să fie incluse în răspunsul de excepție, ceea ce poate fi crucial atunci când vine vorba de diagnosticarea problemelor mai târziu pe linie.,
Cu o excepție personalizat obiect creat, tot ce trebuie să faci este să-l arunce ca pe orice alt eroare:
throw new CustomException('Exception message');
un Alt mare avantaj pentru extinderea Eroare obiect, mai degrabă decât a aruncat o eroare generic, este că metadate suplimentare pot fi incluse cu eroare și preluate mai târziu. Acest lucru poate fi incredibil de valoros în depanarea și raportarea erorilor, deoarece uneori un mesaj text simplu pur și simplu nu este suficient. De exemplu, puteți include valorile variabilelor locale sau starea care vă poate ajuta să depanați problema.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
în Afară de datele incluse în obiect de Eroare, atunci când se utilizează Rollbar notifier pentru JavaScript date suplimentare este inclusă în raport. Aceasta include informații contextuale precum browserul și utilizatorul.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
scrierea în consolă
în JavaScript, consola este locul unde pot fi găsite toate jurnalele (mai multe despre asta în Unde sunt înregistrate Erorile JavaScript?). Din fericire, scrierea datelor pe consolă este incredibil de simplă. Pentru a realiza acest lucru, pur și simplu apelați consola.,log () metoda, cu mesajul pe care doriți să scrie în Jurnalul.
console.log("Top level");
Leave a Reply