【Node.js24.x】Error::stackTraceLimitプロパティの使い方
stackTraceLimitプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
stackTraceLimitプロパティは、Node.jsにおいてエラーが発生した際に生成されるスタックトレースの最大行数を制御するプロパティです。
Node.jsでは、プログラムの実行中にエラーが発生すると、そのエラーがどのコードパスで発生したかを示す「スタックトレース」という詳細な情報が自動的に生成されます。このスタックトレースは、エラーの原因を特定し、問題を解決する上で非常に重要な手がかりとなります。
Errorクラスに属するこのstackTraceLimitプロパティは、Errorコンストラクタによって作成されるすべてのエラーインスタンスのスタックトレースに表示される行数をグローバルに設定します。デフォルト値は10行です。これは、通常のエラー診断に十分な情報を提供しつつ、過剰な出力やメモリ消費を防ぐための適切なバランスが考慮されています。
このプロパティに正の整数値を設定すると、スタックトレースは指定した行数に制限されます。例えば、より広範囲なコードパスを調査する必要がある場合に値を増やすと、より多くの呼び出し履歴が表示されます。逆に、エラーログを簡潔に保ちたい場合は値を減らすことができます。値を0に設定するとスタックトレースは全く生成されなくなり、負の数を設定すると、システムが許容する限りすべての呼び出し履歴が表示されるようになります。
デバッグの深度を調整したい場合や、本番環境でのロギング戦略を最適化したい場合に、このプロパティの値を調整することを検討してください。一度設定を変更すると、その後のすべてのエラー生成に影響を与える点に注意が必要です。
構文(syntax)
1// Error.stackTraceLimit プロパティは、エラーが発生した際に表示されるスタックトレースの最大行数を設定します。 2// このプロパティに数値を代入することで、グローバルにスタックトレースの行数を制限できます。 3 4// 例: スタックトレースの最大行数を3に設定する 5Error.stackTraceLimit = 3; 6 7// 制限が適用されたスタックトレースの出力例 8function funcA() { 9 funcB(); 10} 11 12function funcB() { 13 funcC(); 14} 15 16function funcC() { 17 // このエラー発生時のスタックトレースは、Error.stackTraceLimit の設定に従い3行に制限されます。 18 throw new Error("スタックトレース制限のテストエラー"); 19} 20 21try { 22 funcA(); 23} catch (error) { 24 // ここに表示されるスタックトレースは、設定された3行に制限されます。 25 console.error(error.stack); 26} 27 28// 必要に応じて制限を解除することも可能です。 29// 例えば、無限に表示したい場合は Infinity を設定します。 30// Error.stackTraceLimit = Infinity; 31 32// デフォルトの制限に戻したい場合は、通常は10を設定します (Node.jsのバージョンや環境に依存)。 33// Error.stackTraceLimit = 10;
引数(parameters)
引数なし
引数はありません
戻り値(return)
number
Error.prototype.stackTraceLimitプロパティは、スタックトレースに含めるスタックフレームの最大数を表す数値です。この値を設定することで、エラー発生時の詳細な呼び出し履歴の深さを制御できます。