Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【JavaScript ECMAScript】SuppressedError::SuppressedError: suppressedインスタンスデータプロパティの使い方

SuppressedError: suppressedインスタンスデータプロパティの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

SuppressedError: suppressedプロパティは、SuppressedErrorクラスのインスタンスが、プライマリエラーに加えて、関連する他のエラー(抑圧されたエラー)のリストを保持するプロパティです。このプロパティは、ECMAScript 2023で導入されたSuppressedErrorオブジェクトの重要な構成要素であり、特に複数の非同期処理を同時に実行し、その結果を待つような場面で役立ちます。

例えば、Promise.allSettled()Promise.any()のように、複数のPromise(非同期処理)が実行される際に、一つのプライマリエラーが発生しても、他のPromiseでさらに複数のエラーが発生する場合があります。このような状況で、SuppressedErrorはプライマリエラーを最上位に置きつつ、suppressedプロパティを通じて、そのプライマリエラーに隠されてしまった、その他に発生した全てのエラーを配列として保持します。

これにより、開発者はエラーの原因を詳細に調査したり、複数のエラーをまとめて処理したりすることが可能になります。システムが複雑になるほど、エラーの全容を把握することは重要であり、このプロパティは堅牢なエラーハンドリングを実装するための鍵となります。開発者はこのプロパティを参照することで、システム内で発生したエラー情報を漏れなく収集し、より効果的なデバッグや回復処理を行うことができます。

公式リファレンス: SuppressedError: suppressed

構文(syntax)

1const mainError = new Error('主なエラーメッセージ');
2const suppressedErrors = [
3  new Error('抑制されたエラー1'),
4  new Error('抑制されたエラー2')
5];
6
7const mySuppressedError = new SuppressedError(
8  '複数のエラーが発生しました',
9  mainError,
10  suppressedErrors
11);
12
13console.log(mySuppressedError.suppressed);

引数(parameters)

引数なし

引数はありません

戻り値(return)

Error

SuppressedError インスタンスが抑制されたエラーを表します。このプロパティは、本来発生すべきだったエラーオブジェクトを返します。

関連コンテンツ