RangeError

The RangeError object indicates an error when a value is not in the set or range of allowed values.

Description

A RangeError is thrown when trying to pass a value as an argument to a function that does not allow a range that includes the value.

This can be encountered when:

RangeError is a serializable object, so it can be cloned with structuredClone() or copied between Workers using postMessage().

Constructor

RangeError()

Creates a new RangeError object.

Instance properties

RangeError.prototype.message

Error message. Inherited from Error.

RangeError.prototype.name

Error name. Inherited from Error.

RangeError.prototype.cause

Error cause. Inherited from Error.

RangeError.prototype.fileName Non-Standard

Path to file that raised this error. Inherited from Error.

RangeError.prototype.lineNumber Non-Standard

Line number in file that raised this error. Inherited from Error.

RangeError.prototype.columnNumber Non-Standard

Column number in line that raised this error. Inherited from Error.

RangeError.prototype.stack Non-Standard

Stack trace. Inherited from Error.

Examples

Using RangeError (for numeric values)

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
  }
}

Using RangeError (for non-numeric values)

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
  }
}

Specifications

Specification
ECMAScript Language Specification
# sec-native-error-types-used-in-this-standard-rangeerror

Browser compatibility

BCD tables only load in the browser

See also