スタックトレース

stacktrace.png

スタックトレース

よく

try{
...
}catch(IORxcrpyion e){
 e.printStackTrace();
}

とEclipseでコードが自動生成されるけど、stackTraceってなんだろう?

スタックトレースとは特定のメソッドが呼ばれるまでに経てきたメソッドの一覧。
 
あるメソッドは、通常他のメソッドから呼ばれ、そのメソッドも他のメソッドから呼ばれ、そのメソッドも他のメソッドから呼ばれ……と続き、最終的にはmain()メソッドから呼ばれている。
この「あるメソッドが呼ばれるまでの、メソッドの呼び重ね」は全て保存されている。
このメソッドの情報は、それぞれのメソッドに格納されたローカル変数と共に「スタック」形式でメモリ(スタック領域)に格納される。ローカル変数は最後に呼ばれたメソッドの変数から消されるためである。
この「メソッドの呼び重ね」の一覧を「スタックトレース」と呼ぶ。

でも、一体どこにprintされてるの??
、呼び出し元メソッドとファイル名及び行番号(つまり「スタックトレース」)、「Caused by」の4つを標準エラー出力に出力する。
うーん、でもandroidだったら標準エラー出力には出ないよね?

サポートサイト Wikidot.com