Spec-Zone.ru › JavaScript

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

Смотрите также

  • Error
  • Array
  • Number.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API