JavaScriptの.stackプロパティとは?エラーのスタックトレース取得方法を解説
JavaScriptのErrorオブジェクトが持つstackプロパティは、デバッグにおいて非常に有用な情報を提供します。このプロパティを参照することで、「どの関数が」「どのような順序で」「どのファイルの何行目から」「どのような引数で」呼び出されたのかというトレース情報(スタックトレース)を確認できます。
スタック文字列は、最も新しく呼び出された関数から順に、過去の呼び出しさかのぼる形式で記録されており、最終的にグローバルスコープでの最初の呼び出しまで遡ることができます。この仕組みは、Javaのスタックトレースとよく似ています。
エラー発生時にこのスタックトレースを出力しておけば、問題の原因となった箇所や処理の流れを素早く特定できるため、トラブルシューティングの強力な手がかりとなります。
コード例
function a() {
throw new Error("error");
}
try {
a();
}
catch(e) {
console.log(e.stack);
}
実行結果
上記のコードを実行すると、次のような出力が得られます。
Error: error
at a (<anonymous>:2:11)
at <anonymous>:6:5
この出力では、まず「a」という関数の2行目11列目でエラーが発生し、それが6行目5列目から呼び出されたことが分かります。このように、エラーの発生箇所と呼び出し元を一行ずつ辿れるのがstackプロパティの大きな利点です。
注意点
stackプロパティはECMAScriptの標準仕様には含まれていない非標準のプロパティです。主要なブラウザやNode.jsなど多くの環境で利用できますが、すべての実行環境で同じ形式や内容が保証されているわけではないため、本番コードで厳密に依存する場合は注意が必要です。
-
JavaScriptの.stackプロパティとは?エラーのスタックトレース取得方法を解説
JavaScriptのErrorオブジェクトが持つstackプロパティは、デバッグにおいて非常に有用な情報を提供します。このプロパティを参照することで、「どの関数が」「どのような順序で」「どのファイルの何行目から」「どのような引数で」呼び出されたのかというトレース情報(スタックトレース)を確認できます。 スタック文字列は、最も新しく呼び出された関数から順に、過去の呼び出しさかのぼる形式で記録されており、最終的にグローバルスコープでの最初の呼び出しまで遡ることができます。この仕組みは、Javaのスタックトレースとよく似ています。 エラー発生時にこのスタックトレースを出力しておけば、問題の原因とな
-
JavaScriptでのSentryの使い方とは?主な機能をわかりやすく解説
Sentryとは?JavaScript開発を支えるデバッグ・監視ツールSentryは、本番環境(プロダクション)で稼働しているコードを追跡できる、JavaScript向けの総合的なデバッグ・監視ツールパッケージです。開発環境では再現しないエラーや、ユーザーの端末上でのみ発生する不具合を効率的に把握できるため、Webアプリケーションの品質向上に欠かせない存在となっています。Sentryが提供する主な機能は以下の通りです。1. 環境情報と使用状況の記録によるバグ再現エラー発生時のOS、ブラウザ、デバイス、URLなどの環境情報やユーザーの操作状況を自動的に記録します。これにより、報告だけでは再現が難