RangeError
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Объект RangeError
представляет ошибку, возникающую, когда значение не входит в множество или диапазон допустимых значений.
Описание
RangeError
возникает при попытке передать в качестве аргумента функции значение, которое не входит в диапазон допустимых значений.
Это может происходить в разных случаях:
- при передаче значения, которое не является одной из допустимых строк, в
String.prototype.normalize()
, - при попытке создать массив недопустимой длины с помощью конструктора
Array
, - при передаче недопустимых значений в такие методы, как
Number.prototype.toExponential()
,Number.prototype.toFixed()
илиNumber.prototype.toPrecision()
.
RangeError
является сериализуемым объектом, поэтому он может быть клонирован с помощью structuredClone()
или передан между воркерами с использованием postMessage()
.
RangeError
является подклассом Error
.
Конструктор
RangeError()
-
Создаёт новый объект
RangeError
.
Свойства экземпляра
Также наследует свойства экземпляра своего родителя Error
.
Эти свойства определены в RangeError.prototype
и есть у всех экземпляров RangeError
.
RangeError.prototype.constructor
-
Функция-конструктор, создающая экземпляр объекта. Для экземпляров
RangeError
начальным значением является конструкторRangeError
. RangeError.prototype.name
-
Представляет название типа ошибки. Начальным значением
RangeError.prototype.name
является"RangeError"
.
Методы экземпляра
Наследует методы экземпляра своего родителя Error
.
Примеры
Использование RangeError
для цифровых значений
function check(n) {
if (!(n >= -500 && n <= 500)) {
throw new RangeError("Аргумент должен быть в диапазоне между -500 и 500.");
}
}
try {
check(2000);
} catch (error) {
if (error instanceof RangeError) {
// Обработка ошибки
}
}
Использование RangeError
для нецифровых значений
function check(value) {
if (!["яблоко", "банан", "морковь"].includes(value)) {
throw new RangeError(
'Аргумент должен иметь значение "яблоко", "банан" или "морковь".',
);
}
}
try {
check("капуста");
} catch (error) {
if (error instanceof RangeError) {
// Обработка ошибки
}
}
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-native-error-types-used-in-this-standard-rangeerror |
Совместимость с браузерами
BCD tables only load in the browser