Java はスレッドごとにメソッドの呼び出しをスタックで管理している スタック = LIFOのデータ構造 例外を new すると、その時点のスタックの情報が例外に記録される スタックトレースは、このスタックの情報を出力したもの トレース = trace = 追跡 スタックを追跡するためのもの スタックトレースを読むと、その例外を投げたスレッドがどのようにプログラムを通り、どこで例外をスローしたかが分かる スタックトレースの読み方 初めて長大なスタックトレースを見るとビックリしてしまうかもしれないが、全部を読む必要は無い 「例外の発生箇所を特定する」という目的に対しては、一番重要なのはスタックトレースの先頭だけ スタックトレースの先頭行は、その例外が生成された場所 普通は throw new Exceptin() のように、生成と同時に例外をスローするので、例外が生成された場所=例外がスロー