【Node.js24.x】Error::captureStackTrace()メソッドの使い方
captureStackTraceメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
captureStackTraceメソッドは、特定のオブジェクトに現在の実行スタックの情報をキャプチャして付与するメソッドです。これはNode.jsのErrorクラスに組み込まれている静的メソッドであり、主にデバッグ目的で、エラーが発生した時点の呼び出し履歴(スタックトレース)を任意のオブジェクトに記録するために使用されます。
第一引数には、スタックトレースを付与したい任意のオブジェクトを指定します。通常は、カスタムエラーオブジェクトなどのErrorインスタンスがこれに該当し、スタックトレース情報がそのオブジェクトのプロパティとして設定されます。
第二引数にはオプションとして、スタックトレースの最上部から除外したいコンストラクタ関数を指定できます。この引数を使用すると、指定されたコンストラクタ関数のフレーム、およびそれより上位の呼び出しフレームをスタックトレースから省き、実際にエラーが発生したビジネスロジックの箇所をより明確に表示できるようになります。例えば、独自のカスタムエラークラス内でこのメソッドを呼び出す際に、カスタムエラーのコンストラクタ自身を第二引数に指定することで、エラーオブジェクトの生成処理に関する内部的なスタックフレームを除外できます。
このメソッドは、独自のカスタムエラークラスを定義する際に、そのエラーがどこで生成されたかを示す正確なスタックトレースを付与するために非常に有用です。これにより、アプリケーションのバグを特定し、問題を解決するデバッグ作業を効率的に進めることが可能になります。
構文(syntax)
1class CustomError extends Error { 2 constructor(message) { 3 super(message); 4 this.name = 'CustomError'; 5 Error.captureStackTrace(this, CustomError); 6 } 7}
引数(parameters)
targetObject, constructorOpt
- targetObject: object: スタックトレースをキャプチャしたいオブジェクト
- constructorOpt: Function: スタックトレースの生成元となるコンストラクタ関数
戻り値(return)
undefined
このメソッドは、エラーオブジェクトにスタックトレース情報を追加し、その処理結果を返しません。