AggregateError

基线 广泛可用

此功能已得到良好确立,并且可以在许多设备和浏览器版本中使用。它自以下时间起在浏览器中可用: 2020 年 9 月.

AggregateError 对象表示当多个错误需要包装在一个错误中时发生的错误。例如,当传递给它的所有 Promise 都被拒绝时,由 Promise.any() 等操作报告多个错误时,会抛出此错误。

AggregateErrorError 的子类。

构造函数

AggregateError()

创建一个新的 AggregateError 对象。

实例属性

还继承了其父类 Error 的实例属性.

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

AggregateError.prototype.constructor

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

AggregateError.prototype.name

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

这些属性是每个 AggregateError 实例的自有属性。

errors

一个表示已聚合错误的数组。

实例方法

继承了其父类 Error 的实例方法.

示例

捕获 AggregateError

js
Promise.any([Promise.reject(new Error("some error"))]).catch((e) => {
  console.log(e instanceof AggregateError); // true
  console.log(e.message); // "All Promises rejected"
  console.log(e.name); // "AggregateError"
  console.log(e.errors); // [ Error: "some error" ]
});

创建 AggregateError

js
try {
  throw new AggregateError([new Error("some error")], "Hello");
} catch (e) {
  console.log(e instanceof AggregateError); // true
  console.log(e.message); // "Hello"
  console.log(e.name); // "AggregateError"
  console.log(e.errors); // [ Error: "some error" ]
}

规范

规范
ECMAScript 语言规范
# sec-aggregate-error-objects

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅