【すたっくとれーす】
スタックトレース とは?
最終更新:
💡 その時点の呼び出しをたどる
ある時点で積み重なっている関数・メソッドの呼び出しを示す情報。例外の調査などに使い、呼び出し元をたどれる。終了済みの処理を含む実行履歴すべてではなく、表示順や含まれる情報は言語・実行環境によって異なる。
📌 このページのポイント
スタックトレースって何行もあって読めない…
実行した関数が全部記録されているの?
その時点で続いている呼び出しの積み重なりが中心で、すでに戻った関数も含めた全実行履歴ではないよ。環境によってフレームや行番号が省略されることもある。例外を捕まえて処理を続ける場合にも調査に使えるんだ。
自分のコードじゃなくてライブラリの中のエラーってどう読むの?
エラーの種類やメッセージはどこを見るの?
本番環境のスタックトレースをユーザーに見せちゃいけないの?
公開エラー画面にそのまま出すと、内部のファイルパスや構成が漏れることがあるよ。利用者には必要な案内を表示し、詳細はアクセスを制限したログなどで調べられる設計にしよう。ログに秘密情報を含めない配慮も必要なんだ。
まとめ:ざっくりこれだけ覚えればOK!
「スタックトレース」って出てきたら「ある時点の関数呼び出しの積み重なりを示す情報」と思えばだいたいOK!
📖 おまけ:英語の意味
「stack trace」 = スタック(積み重ね)の追跡
💬 関数の呼び出しが積み重なるコールスタックを、trace(追跡)することから来ているよ。例外時だけでなく、調査のために実行中のスタックを出力することもできるんだ