błędy są wyrzucane przez silnik, a wyjątki są wyrzucane przez programistę. Ale co to dokładnie znaczy? W JavaScript wszystkie wyjątki są po prostu obiektami. Podczas gdy większość WYJĄTKÓW to implementacje klasy global Error, każdy stary obiekt może zostać wyrzucony. Mając to na uwadze, istnieją dwa sposoby rzucania wyjątku: bezpośrednio przez obiekt błędu i przez obiekt niestandardowy.,
ogólne wyjątki
chociaż wbudowana Klasa błędów jest dość dobrze zdefiniowana-w tym takie rzeczy jak nazwa pliku, numer linii i ślad stosu, aby wymienić tylko kilka—jeśli chodzi o to, najważniejszą rzeczą do odnotowania jest wiadomość. Pierwszy—i często jedyny-parametr przekazywany podczas tworzenia instancji błędu, komunikat jest błędem czytelnym dla człowieka, który często może być powiązany bezpośrednio z użytkownikiem końcowym. Rzucenie ogólnego wyjątku jest prawie tak proste, jak się wydaje., Wystarczy utworzyć instancję obiektu exception – z pierwszym parametrem konstruktora błędu jest komunikat o błędzie—a następnie … „wyrzucić” go.
throw new Error('Exception message');
błąd.kod a błąd.message
ważne jest, aby pamiętać, że podczas gdy komunikat o błędzie jest czytelnym dla człowieka danymi o błędzie, węzeł.js dostarcza również kod błędu, który identyfikuje rodzaj błędu, który jest wyrzucany. Wartość ta jest przydatna, ponieważ pozwala programowo dostosować się do błędów, które mogą zostać wyrzucone, niezależnie od komunikatu zawartego w błędzie.,
podczas gdy kody błędów są zwykle używane do błędów systemowych, podczas tworzenia błędów niestandardowych przez rozszerzenie klasy błędów( zobacz wyjątki niestandardowe poniżej, aby uzyskać więcej szczegółów), kod niestandardowy może być zdefiniowany i używany do bardziej ustrukturyzowanych definicji błędów.
niestandardowe wyjątki
chociaż możliwe jest wyrzucenie dowolnego obiektu, najlepszą praktyką jest rozszerzenie obiektu błędu o nową klasę. W środowiskach, które go obsługują, pozwala to na włączenie funkcji takich jak automatyczne śledzenie stosu do odpowiedzi na wyjątki, co może być kluczowe, jeśli chodzi o diagnozowanie problemów w późniejszym czasie.,
Po utworzeniu niestandardowego obiektu wyjątku, wszystko, co musimy zrobić, to rzucić go jak każdy inny błąd:
throw new CustomException('Exception message');
kolejną dużą zaletą rozszerzenia obiektu błędu, zamiast rzucania ogólnego błędu, jest to, że dodatkowe metadane mogą być dołączone do błędu i pobierane później. Może to być niezwykle cenne w debugowaniu i raportowaniu błędów, ponieważ czasami zwykły SMS po prostu nie wystarczy. Na przykład możesz podać wartości zmiennych lokalnych lub stanu, które mogą pomóc w debugowaniu problemu.,
function CustomException(message, metadata) { const error = new Error(message); error.metadata = metadata; return error;}
poza danymi zawartymi w obiekcie błędu, przy użyciu Rollbar notifier dla JavaScript dodatkowe dane są dołączane do raportu. Obejmuje to informacje kontekstowe, takie jak przeglądarka i użytkownik.
// Caught errorstry { doSomething();} catch (e) { Rollbar.error("Something went wrong", e);}
zapis do konsoli
w JavaScript, konsola jest miejscem, gdzie można znaleźć wszystkie logi (więcej na ten temat w Gdzie są rejestrowane błędy JavaScript?). Na szczęście zapisywanie danych do konsoli jest niezwykle proste. Aby to osiągnąć, po prostu zadzwoń do konsoli.,metoda log (), z wiadomością, którą chcesz zapisać do dziennika.
console.log("Top level");
Leave a Reply