JavaScript/AggregateError
概要
編集AggregateErrorオブジェクトは、複数のエラーをまとめて処理するために使用されるエラーオブジェクトです。このオブジェクトは、通常のErrorオブジェクトを拡張し、errorsプロパティを持つ点が特徴です。これにより、エラーの集合を保持し、複数のエラーを1つのオブジェクトで扱うことができます。
コンストラクタ
編集AggregateError(errors, message [, options])
編集AggregateErrorコンストラクタは、新しいAggregateErrorオブジェクトを作成および初期化します。
引数
編集errors:- エラーの反復可能オブジェクト(例: 配列)。これには、エラーや他の値が含まれます。
message:- エラーに関連付けられる説明メッセージ(省略可能)。
options:- エラーの原因(
causeプロパティ)を設定するオプションオブジェクト(省略可能)。
- エラーの原因(
動作
編集- 新しい
AggregateErrorオブジェクトを作成します。 messageが指定されている場合は、文字列に変換してmessageプロパティに設定します。optionsが指定されている場合は、causeプロパティを設定します。errorsからエラーリストを作成し、errorsプロパティに設定します。
プロパティ
編集AggregateError.prototype
編集AggregateErrorのプロトタイプオブジェクトです。このオブジェクトには以下のプロパティが定義されています。
AggregateError.prototype.constructor
編集このプロパティはAggregateErrorコンストラクタを指します。
AggregateError.prototype.message
編集初期値は空文字列("")です。このプロパティにはエラーに関する説明が含まれます。
AggregateError.prototype.name
編集初期値は"AggregateError"です。このプロパティはエラーの名前を表します。
AggregateError.prototype.toString()
編集エラーを文字列として表現します。このメソッドは、エラーのnameおよびmessageプロパティを使用して出力を生成します。
errors
編集AggregateErrorインスタンスのプロパティで、エラーのリストを保持します。これは、元のerrors引数を配列として保存します。
使用例
編集基本的な例
編集try { throw new AggregateError([new Error("エラー1"), new Error("エラー2")], "複数のエラーが発生しました"); } catch (e) { console.log(e.message); // "複数のエラーが発生しました" console.log(e.errors); // [Error: エラー1, Error: エラー2] }
causeオプションの使用例
編集
const err = new AggregateError([new Error("エラー1")], "複数のエラー", { cause: "サーバー障害" }); console.log(err.cause); // "サーバー障害"