このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Error.stackTraceLimit
非標準: この機能は標準化されていません。非標準の機能はブラウザーの対応が限られ、将来的に変更または削除される可能性があるため、本番環境での使用は推奨されません。ただし、標準の選択肢が存在しない特定のケースでは、有効な代替手段となる場合があります。
メモ:この機能は現在標準外のV8 スタックトレース API の一部です。ただし互換性の理由から、JavaScriptCore でも実装されています。
Error.stackTraceLimit は静的データプロパティで、エラーのスタックトレースによってキャプチャされるスタックフレームの最大数を示します。ユーザーコードによって設定可能であり、エンジンの動作を変更できます。
一般的に、このプロパティを読み取ることはあまり有用ではありませんが、新しい値に設定することは可能です。デバッグ時には、より大きな値に設定すると、コールスタックをより多く表示できるため有用です。より小さな値に設定すると、キャプチャされるスタックの量が減少するため、パフォーマンスが向上します。
In this article
値
整数で、エラーのスタックトレースによってキャプチャされるスタックフレームの最大数を表します。
Error.stackTraceLimit のプロパティ属性 | |
|---|---|
| 書込可能 | 可 |
| 列挙可能 | 可 |
| 設定可能 | 可 |
解説
stackTraceLimit はError の静的プロパティであるため、常にError.stackTraceLimit として使用します。作成したError オブジェクトのプロパティとして使用することはできません。単一のエラーに対してのみスタックトレースをカスタマイズしたい場合は、プロパティを設定し、エラーを作成した後、プロパティを元の値にリセットする必要があるかもしれません。
例
>Error.stackTraceLimit の設定
このコードは、Error.stackTraceLimit に未対応の環境でも安全に実行できます。なぜなら、このプロパティを読み取るのではなく設定のみを行うため、未対応のエンジンでは設定が無視されるからです。
Error.stackTraceLimit = 2;const a = () => b();const b = () => c();const c = () => d();const d = () => e();const e = () => { throw new Error("My error");};try { a();} catch (e) { console.log(e.stack);}// 対応するエンジンではフレームが 2 つだけ。その他のエンジンではすべてのフレーム。