2013-04-22 10 views
14

Wygląda na to, że błędy i wyjątki są tymi samymi rzeczami, obie mogą być rzucane za pomocą polecenia "throw" i przechwytywane przez blok "try-catch".Czym różni się błąd od wyjątku w JavaScript

+0

Trochę googlowania nigdy się nie myli, http://java67.blogspot.nl/2012/12/difference-between-error-vs-exception.html – notknown7777

+0

"" wyjątki "odnosi się do błędów (środowiska wykonawczego), które mogą być uwięzionym i kontrolowanym, w przeciwieństwie do "błędów", które są po prostu złą składnią i całkowicie psują kompilator ... "- https://forums.digitalpoint.com/threads/difference-between-error-exception.1324844/ – notknown7777

Odpowiedz

14

JavaScript składni

Błędy i wyjątki są składniowo synonimami w JavaScript. Język wprowadza tylko słowo kluczowe Error, poprzez window.Error. Można zdefiniować błędy niestandardowe, korzystając z parametru Error.constructor, który przyjmuje jako parametry parametry name i message.

Błąd JavaScript

Istnieje również linia numer cukru, które mogą być wykorzystywane do śledzenia wystąpienia błędów w kodzie. JavaScript ma tylko Error. Niezależnie od tego, czy słyszysz ludzi mówiących o Exceptions czy Errors, w JavaScript odnoszą się one do tej samej rzeczy.

Przeglądarki dokonać rozróżnienia: ReferenceError (podczas dostępu do zmiennej o nazwie, która nie istnieje w stercie, lub po dokonaniu literówkę (więcej here) TypeError jest również znany błąd JS, bardziej here..

JavaScript Wyjątek

znany JavaScript Exception jest DOM Exception 8. występuje wtedy, gdy masz dostęp do obiektu, który nie jest gotowy, taki jak XMLHttpRequest że nie ukończył żądania.

Realizacja

Podczas korzystania try catch lub try catch finally bloków, będzie zajmować się zarówno JavaScript Exception i Error. Pod względem kodu różnica nie ma wpływu.

Za kulisami przeglądarki używają tego samego window.Errorconstructor.Wersja Exception jest instancją Error z name i message, które zawierają "wyjątek".

Spróbuj: var myCustomError = new Error("myException", "An exception occurred.");. "Wyjątek" to tekst w ciągu znaków. Więcej informacji na temat Errorhere.

Konwencja

Umownie, istnieje różnica między Error i Exception. Numer Error oznacza wyraźne naruszenie. A TypeError lub RefferenceError oznacza, że ​​nie przestrzegasz specyfikacji językowych.

Po uzyskaniu dostępu do odpowiedzi XMLHttpRequest jest ona wysyłana, zanim zostanie zakończona. Error to krzyk "złamałeś prawo", a Exception to "Prawie tam!" poduszka na ramieniu. Mam nadzieję, że analogia pomaga.

0

Myślę, że błąd jest czymś poważnym, że nie powinieneś próbować złapać Wyjątkiem jest coś, co powinno zostać złapane, o ile można sobie z tym poradzić.

Błąd występuje wtedy, gdy coś złego lub nieważnego dzieje się w kodzie. Może to spowodować błąd pamięci, to coś, co nigdy nie powinno się zdarzyć i nie można go leczyć.

Podczas gdy wyjątek rzuca coś, gdy pewne warunki są spełnione w kodzie. Może nie odpowiadać rzeczywistemu błędowi.

3

Na podstawie lecture, błędy są generowane przez silnik JavaScript, a wyjątek jest zgłaszany przez programistę. to tylko konwencja nazewnictwa.

  • JavaScript rzuca błędy
  • Deweloperzy generuje wyjątki

W aspekcie technicznym jest taka sama struktura (rzecz).

Powiązane problemy