Ответ 1
Синтаксис JavaScript
Ошибки и исключения синтаксически синонимичны в JavaScript. Язык реализует только ключевое слово Error
(через window.Error
). Вы можете определить пользовательские ошибки, используя Error.constructor
, который принимает name
и message
в качестве параметров.
Ошибка JavaScript
Существует также сахар с номером строки, который можно использовать для отслеживания ошибок в коде. JavaScript имеет только Error
. Слышите ли вы, что люди говорят о Exceptions
или Errors
, в JavaScript они ссылаются на одно и то же.
Браузеры делают различие: ReferenceError
(при доступе к переменной с именем, которого нет в куче, или когда вы делаете опечатку (подробнее здесь.), TypeError
также является известным JS ошибка, больше здесь.
Исключение JavaScript
Известный JavaScript Exception
- это DOM Exception 8
. Это происходит при доступе к объекту, который не готов, например, к XMLHttpRequest
, который не выполнил запрос.
РеализацияПри использовании блоков try catch
или try catch finally
вы будете иметь дело как с JavaScript Exception
, так и с Error
. Разница в кодах не имеет никакого значения.
За кулисами браузеры используют тот же window.Error
constructor
. Exception
является экземпляром Error
с name
и message
, которые содержат "Исключение".
Попробуйте: var myCustomError = new Error("myException", "An exception occurred.");
. "Исключение" - это текст в строке. Подробнее о Error
здесь.
Конвенция
По соглашению, есть разница между Error
и Exception
. Error
указывает на явное нарушение. TypeError
или ReferenceError
означает, что вы не следуете языковым спецификациям.
Exception
генерируется при доступе к ответу XMLHttpRequest
до его завершения. Error
- это крик "ты нарушил закон", а Exception
- это "Почти там!" накладка на плечо. Надеюсь, аналогия поможет!