【すたっくとれーす】
スタックトレース とは?
💡 エラーに至る「関数の呼び出し道筋の記録」
📌 このページのポイント
スタックトレースって何行もあって読めない…
まず一番下の行を見て。そこが「実際にエラーが起きた場所」。次にエラーメッセージを読む。この2つだけで原因の8割はわかる。中間の行は「どこ経由で来たか」の道筋で、最初は無視していい。
自分のコードじゃなくてライブラリの中のエラーってどう読むの?
よく見るNullPointerExceptionとかTypeErrorって何?
本番環境のスタックトレースをユーザーに見せちゃいけないの?
絶対ダメ。ファイルパス・変数名・内部構造が全部バレるから、攻撃者へのヒントになる。本番ではユーザーには「エラーが発生しました」だけ見せて、スタックトレースはサーバのログにだけ出力する設計が正解。
まとめ:ざっくりこれだけ覚えればOK!
スタックトレースって出てきたら「エラーが起きるまでの関数呼び出しの記録」と思えばだいたいOK!
📖 おまけ:英語の意味
「stack trace」 = スタック(積み上げ)の追跡
💬 関数呼び出しは「コールスタック」に積まれていく。エラー時にそのスタックの中身を「trace(追跡)」したものがスタックトレース