RangeError
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с июля 2015 года.
Объект RangeError указывает на ошибку, когда значение не входит в набор или диапазон разрешенных значений.
Описание
Ошибка RangeError выбрасывается при попытке передать значение в качестве аргумента функции, которая не допускает диапазон, включающий это значение.
Это может произойти, когда:
- передается значение, не входящее в число разрешенных строковых значений, в
String.prototype.normalize(), или - предпринимается попытка создать массив недопустимой длины с помощью конструктора
Array, или - передаются некорректные значения в числовые методы
Number.prototype.toExponential(),Number.prototype.toFixed()илиNumber.prototype.toPrecision().
RangeError является сериализуемым объектом, поэтому его можно клонировать с помощью structuredClone() или копировать между веб-воркерами (Workers) с помощью 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("The argument must be between -500 and 500.");
}
}
try {
check(2000);
} catch (error) {
if (error instanceof RangeError) {
// Handle the error
}
}
Использование RangeError (для нечисловых значений)
function check(value) {
if (!["apple", "banana", "carrot"].includes(value)) {
throw new RangeError(
'The argument must be an "apple", "banana", or "carrot".',
);
}
}
try {
check("cabbage");
} catch (error) {
if (error instanceof RangeError) {
// Handle the error
}
}
Спецификации
| Спецификация |
|---|
| ECMAScript® 2027 Language Specification # sec-native-error-types-used-in-this-standard-rangeerror |
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
RangeError |
1 |
12 |
1 |
5 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
RangeError |
1 |
12 |
1 |
5 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
serializable_object |
77 |
79 |
103Сериализуемые свойства версии 103:name, message, cause, fileName, lineNumber и columnNumber.Версия 104 также сериализует stack в основном потоке (window.postMessage() и structuredClone()).Версия 110 также сериализует stack в воркерах (workers) (worker.postMessage() и structuredClone()). |
64 |
No |
77 |
103Сериализуемые свойства версии 103:name, message, cause, fileName, lineNumber и columnNumber.Версия 104 также сериализует stack в основном потоке (window.postMessage() и structuredClone()).Версия 110 также сериализует stack в воркерах (workers) (worker.postMessage() и structuredClone()). |
55 |
No |
12.0 |
77 |
No |
? |
No |
No |
Смотрите также
ErrorArrayNumber.prototype.toExponential()Number.prototype.toFixed()Number.prototype.toPrecision()String.prototype.normalize()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RangeError