RangeError

Об'єкт RangeError позначає помилку, що виникає, коли значення не входить у множину або діапазон дозволених значень.

Синтаксис

new RangeError([message[, fileName[, lineNumber]]])

Параметри

message Optional
Необов'язковий. Зрозумілий людині опис помилки.
fileName Optional 
Необов'язковий. Ім'я файлу, який містить код, що спричинив виняток.
lineNumber Optional 
Необов'язковий. Номер рядка в коді, що спричинив виняток.

Опис

Виняток RangeError викидається при спробі передати у якості аргумента функції значення, яке не входить у діапазон дозволених цією функцією значень.

Його можна зустріти, якщо:

  • передати значення, що не є одним з дозволених рядкових значень, у String.prototype.normalize(), або
  • при спробі створити масив з недозволеним значенням довжини за допомогою конструктора Array, або
  • при спробі передати неправильні значення до числових методів Number.toExponential(), Number.toFixed() або Number.toPrecision().

Властивості

RangeError.prototype
Вможливлює додавання властивостей до об'єктів RangeError.

Методи

Сам RangeError не має власних методів, але успадковує деякі методи через ланцюжок прототипів.

Екземпляри RangeError

Властивості

RangeError.prototype.constructor
Визначає функцію, яка створила прототип об'єкта.
RangeError.prototype.message
Повідомлення помилки. Хоча ECMA-262 зазначає, що RangeError має надавати власну властивість message, у SpiderMonkey, він успадковує Error.prototype.message.
RangeError.prototype.name
Ім'я помилки. Успаковано від Error.
RangeError.prototype.fileName
Шлях до файлу, що спричинив помилку. Успаковано від Error.
RangeError.prototype.lineNumber
Номер рядка файлу, в якому виникла помилка. Успаковано від Error.
RangeError.prototype.columnNumber
Номер стовпця у рядку, де виникла помилка. Успаковано від Error.
RangeError.prototype.stack
Трасування стеку. Успаковано від Error.

Методи

Хоча прототип RangeError не містить власних методів, екземпляри RangeError успадковують деякі методи через ланцюжок прототипів.

Приклади

Використання 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) === false)
    {
        throw new RangeError("Аргумент має дорівнювати \"яблуко\", \"банан\", або \"морква\".")
    }
}

try
{
    check("капуста")
}
catch(error)
{
    if(error instanceof RangeError)
    {
        // Обробити помилку
    }
}

Специфікації

Специфікація
ECMAScript (ECMA-262)
The definition of 'RangeError' in that specification.

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
RangeErrorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support 5Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
RangeError() constructorChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 5.5Opera Full support 5Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support

Див. також