Error
Базовый класс ошибок: создаётся и выбрасывается через throw.
Доступно с: ES1
Синтаксис
new Error(message, options)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| message | string | Необязательный. Понятное описание ошибки. |
| options | object | Необязательный. Объект с полем cause — исходная причина ошибки. |
Возвращаемое значение
ErrorОбъект ошибки со свойствами name, message, stack и cause.
Примеры
Выбросить и поймать ошибку:
try {
throw new Error('Something went wrong');
} catch (error) {
console.log(error.name);
console.log(error.message);
}Результат:
Error
Something went wrongСобственный класс ошибки:
class ValidationError extends Error {
constructor(field, message) {
super(message);
this.name = 'ValidationError';
this.field = field;
}
}
try {
throw new ValidationError('email', 'Email is required');
} catch (error) {
console.log(error instanceof ValidationError, error.field);
console.log(String(error));
}Результат:
true email
ValidationError: Email is requiredПримечания
Выбрасывайте именно объекты Error, а не строки: у них есть stack — список вызовов, который показывает, где возникла ошибка.
См. также
- try...catch — Перехватывает ошибки, чтобы программа не остановилась.
- throw — Выбрасывает ошибку и прерывает выполнение функции.
- TypeError — Ошибка «значение не того типа» — например, вызов метода у undefined.
- Error.prototype.cause — Исходная причина ошибки — чтобы не потерять её при повторном выбросе.
В учебнике
- Ошибки и try...catch — Обработка ошибок в JavaScript: блоки try, catch и finally, объект ошибки, оператор throw и встроенные типы ошибок.