Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
* Some parts of this feature may have varying levels of support.
Экземпляры объекта Error выбрасываются при возникновении ошибок во время выполнения. Объект Error также может использоваться в качестве базового для пользовательских исключений. Смотрите ниже стандартные встроенные типы ошибок.
Во время выполнения кода ошибки приводят к созданию и выбрасыванию новых объектов Error.
Error является сериализуемым объектом, поэтому он может быть клонирован с помощью structuredClone() или передан между воркерами с использованием postMessage().
Кроме общего конструктора Error, в JavaScript существуют другие встроенные конструкторы ошибок, смотрите раздел Выражения обработки исключений.
EvalErrorСоздаёт экземпляр, представляющий ошибку, возникающую в глобальной функции eval().
RangeErrorСоздаёт экземпляр, представляющий ошибку, возникающую при выходе числовой переменной или параметра за пределы допустимого диапазона.
ReferenceErrorСоздаёт экземпляр, представляющий ошибку, возникающую при разыменовывании недопустимой ссылки.
SyntaxErrorСоздаёт экземпляр, представляющий синтаксическую ошибку, возникающую при разборе исходного кода в функции eval().
TypeErrorСоздаёт экземпляр, представляющий ошибку, возникающую при недопустимом типе для переменной или параметра.
URIErrorСоздаёт экземпляр, представляющий ошибку, возникающую при передаче в функции encodeURI() или decodeURI() недопустимых параметров.
AggregateErrorСоздаёт экземпляр, представляющий несколько ошибок, обёрнутых в одну. Может быть полезно, например, при работе с Promise.any().
InternalErrorСоздаёт экземпляр, представляющий ошибку, возникающую при выбрасывании внутренней ошибки в движке JavaScript. К примеру, ошибки «слишком глубокая рекурсия» («too much recursion»).
Создаёт новый объект Error.
Нестандартная функция V8, которая создаёт свойство stack у экземпляра Error.
Error.stackTraceLimitНестандартное числовое свойство V8, которое ограничивает количество уровней ошибок, включаемых в трассировку стека.
Error.prepareStackTrace() НеобязательныйНестандартная функция V8, которая (если задана в пользовательском коде) вызывается JavaScript-движком V8 для выбрасывание исключений, позволяя определять нестандартное форматирование трассировки стека.
Эти свойства определены в Error.prototype и есть у всех экземпляров Error.
Error.prototype.constructorФункция-конструктор, создающая экземпляр объекта. Для экземпляров Error начальным значением является конструктор Error.
Error.prototype.nameПредставляет название типа ошибки. Начальным значением Error.prototype.name является "Error". Подклассы (например, TypeError и SyntaxError) имеют собственные значения свойства name.
Error.prototype.stackНестандартное свойство, содержащее трассировку стека.
Эти свойства являются собственными свойствами каждого экземпляра Error.
causeПричина возникновения текущей ошибки — обычно это другая обнаруженная ошибка. Для созданных пользователем объектов Error это значение свойства cause второго аргумента конструктора.
Нестандартное свойство Mozilla, определяющее номер символа в строке, в которой возникла ошибка.
fileNameНестандартное свойство Mozilla, определяющее путь к файлу, в котором возникла ошибка.
lineNumberНестандартное свойство Mozilla, определяющее номер строки в файле, где возникла ошибка.
messageСообщение об ошибке. Для созданных пользователем объектов Error это строка, передаваемая в качестве первого аргумента конструктора.
Возвращает строку, представляющую указанный объект. Переопределяет метод Object.prototype.toString().
Обычно, вы создаёте объект Error с намерением возбудить ошибку с помощью ключевого слова throw. Вы можете обработать ошибку с помощью конструкции try...catch:
Для обработки только определённых типов ошибок можно делать проверку типа с помощью ключевого слова instanceof:
Вы можете захотеть определить свои собственные типы ошибок, унаследованные от Error, чтобы иметь возможность возбуждать их с помощью throw new MyError() и использовать instanceof MyError для проверки вида ошибки в обработчике исключений. Это помогает делать обработку ошибок более понятной.
Также смотрите обсуждение «Какой способ расширения Error в JavaScript более предпочтителен?» на StackOverflow.
Предупреждение: Встроенные подклассы не могут быть надёжно преобразованы в ES6 код, потому что нет возможности создать базовый класс со специфичным new.target без Reflect.construct(). Требуется дополнительная конфигурация или ручной вызов Object.setPrototypeOf(this, CustomError.prototype) в конце конструктора, иначе создаваемый экземпляр не будет экземпляром CustomError. Смотрите TypeScript FAQ для получения дополнительной информации.
Примечание: Некоторые браузеры включают конструктор CustomError в трассировку стека при использовании классов ES2015.
| ECMAScript® 2027 Language Specification # sec-error-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 24 июн. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.