HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
View in English Always switch to English
非標準: この機能は標準化されていません。非標準の機能はブラウザーの対応が限られ、将来的に変更または削除される可能性があるため、本番環境での使用は推奨されません。ただし、標準の選択肢が存在しない特定のケースでは、有効な代替手段となる場合があります。
メモ: この機能は現在標準外の V8 スタックトレース API の一部です。ただし互換性の理由から、JavaScriptCore でも実装されています。
Error.stackTraceLimit は静的データプロパティで、エラーのスタックトレースによってキャプチャされるスタックフレームの最大数を示します。ユーザーコードによって設定可能であり、エンジンの動作を変更できます。
Error.stackTraceLimit
一般的に、このプロパティを読み取ることはあまり有用ではありませんが、新しい値に設定することは可能です。デバッグ時には、より大きな値に設定すると、コールスタックをより多く表示できるため有用です。より小さな値に設定すると、キャプチャされるスタックの量が減少するため、パフォーマンスが向上します。
整数で、エラーのスタックトレースによってキャプチャされるスタックフレームの最大数を表します。
stackTraceLimit は Error の静的プロパティであるため、常に Error.stackTraceLimit として使用します。作成した Error オブジェクトのプロパティとして使用することはできません。単一のエラーに対してのみスタックトレースをカスタマイズしたい場合は、プロパティを設定し、エラーを作成した後、プロパティを元の値にリセットする必要があるかもしれません。
stackTraceLimit
Error
このコードは、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 つだけ。その他のエンジンではすべてのフレーム。
Enable JavaScript to view this browser compatibility table.
Error.prototype.stack
Error.captureStackTrace()