【JavaScript ECMAScript】SuppressedError::SuppressedError: suppressedインスタンスデータプロパティの使い方
SuppressedError: suppressedインスタンスデータプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
SuppressedError: suppressedプロパティは、SuppressedErrorクラスのインスタンスが、プライマリエラーに加えて、関連する他のエラー(抑圧されたエラー)のリストを保持するプロパティです。このプロパティは、ECMAScript 2023で導入されたSuppressedErrorオブジェクトの重要な構成要素であり、特に複数の非同期処理を同時に実行し、その結果を待つような場面で役立ちます。
例えば、Promise.allSettled()やPromise.any()のように、複数のPromise(非同期処理)が実行される際に、一つのプライマリエラーが発生しても、他のPromiseでさらに複数のエラーが発生する場合があります。このような状況で、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 インスタンスが抑制されたエラーを表します。このプロパティは、本来発生すべきだったエラーオブジェクトを返します。