スタックトレース

  • printStackTrace

スタックトレースを出力するメソッド。
Throwableクラスのメソッド。投げられた例外のクラス名、コンストラクタで渡された「例外の説明」、呼び出し元メソッドとファイル名及び行番号、さらに「Caused by」を標準エラー出力に出力する。
例外が投げられた理由を簡単に取得できるため便利。デバッグの友。
引数を渡さずに呼び出すと標準エラー出力に出力される。引数にPrintWriterクラスを渡すとこのストリームを経由して出力されるため、文字列やファイル等、好きな出力先を選択することもできる。

// Sample.java
import java.io.PrintWriter;
import java.io.StringWriter;

public class Sample
{
public static void main( String[] args )
{
try
{
throw new Exception( "テスト" );
}
catch( Exception e )
{
e.printStackTrace();
// java.lang.Exception: テスト
// at Sample.main(Sample.java:11)

// printStackTrace()メソッドで出力される文字列を
// 取得したい場合には、printStackTrace()メソッドの
// PrintWriterクラスを引数に受け取るオーバーロード
// メソッドを使用します。
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter( stringWriter );
e.printStackTrace( printWriter );
// これで、StringWriterクラスのtoString()メソッドで
// 取得できます。
System.out.println( stringWriter.toString() );
// java.lang.Exception: テスト
// at Sample.main(Sample.java:11)
}
}
}