Error Objects

В JavaScript предусмотрены такие объекты ошибок, как Error(), SyntaxError(), TypeError(). Их можно запускать как в виде конструктора, так и в виде функции, результат один.

Объекты ошибок созданные конструктором имеют два главных свойства - имя ошибки и сообщение.

Так же они могут иметь дополнительные свойства, такие как номер строки и файл в котором произошла ошибка. Дополнительные свойства зависят от окружения, в котором выполняется JS программа.

Объект ошибок применяется совместно с конструкцией throw. Используя тот факт, что throw сработает с любым объектом или даже примитивом, можно создавать свои объекты ошибок. Преимущества своих объектов ошибок в том, что они могут содержать данные, которые помогут изящно разрешить аварийную ситуации и вернуть программу в рабочее состояние. Например:

try {
// что-то случилось, выбрасываем ошибку
throw {
name: "MyErrorType", // тип
message: "oops",
extra: "This was rather embarrassing",
remedy: genericErrorHandler // обработчик
};
} catch (e) {
// информируем пользователя
alert(e.message); // "oops"
// обработка ошибки
e.remedy(); // вызов genericErrorHandler()
}
Источник – книга «JavaScript Patterns», Stoyan Stefanov
Редактировать на GitHub