范围错误

RangeError 对象表示当值不在允许值的集合或范围内时发生的错误。

描述

当尝试将值作为参数传递给不允许包含该值的范围的函数时,将抛出 RangeError

这可能出现在以下情况下:

RangeError 是一个 可序列化对象,因此可以使用 structuredClone() 克隆它,或使用 postMessage()工作线程 之间复制它。

RangeErrorError 的子类。

构造函数

RangeError()

创建一个新的 RangeError 对象。

实例属性

还从其父级 Error 继承实例属性.

这些属性在 RangeError.prototype 上定义,并由所有 RangeError 实例共享。

RangeError.prototype.constructor

创建实例对象的构造函数。对于 RangeError 实例,初始值为 RangeError 构造函数。

RangeError.prototype.name

表示错误类型的名称。对于 RangeError.prototype.name,初始值为 "RangeError"

实例方法

从其父级 Error 继承实例方法.

示例

使用 RangeError(用于数值)

js
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(用于非数值)

js
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 语言规范
# sec-native-error-types-used-in-this-standard-rangeerror

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见