2011年01月30日

スタックトレースを文字列として取得

Javaで例外が発生した場合に、そのスタックトレース(printStackTrace()で
標準出力するような情報)をログファイルに出力したいことがありまして、

ただ、ExceptionのメソッドでスタックトレースをStringとして直接取得する
メソッドが無いようなので、以下のgetStackTraceメソッドを作成してみました。

===

package example;

public class Sample001 {

public static void main(String[] args) {
try {
Integer.parseInt("a");
} catch (NumberFormatException e) {
System.out.println(getStackTrace(e));
}
}

public static String getStackTrace(Exception e) {
StackTraceElement[] list = e.getStackTrace();
String rtn = e.getClass() + ":" + e.getMessage() + "\n";
for( StackTraceElement s : list ) {
rtn += s.toString() + "\n";
}
return rtn;
}

}

【実行結果】
class java.lang.NumberFormatException:For input string: "a"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
java.lang.Integer.parseInt(Integer.java:447)
java.lang.Integer.parseInt(Integer.java:497)
example.Sample001.main(Sample001.java:11)
posted by 台北猫々 at 16:41| Comment(3) | TrackBack(0) | 技術メモ(Java)
この記事へのコメント
スタックトレースを文字列として取得: プログラマーの雑記帳 セイコー http://www.watchjapan.cc/
Posted by セイコー at 2013年06月09日 02:40
スタックトレースを文字列として取得: プログラマーの雑記帳 カシオ 時計 http://www.watchjapan.cc
Posted by カシオ 時計 at 2013年06月09日 02:41
スタックトレースを文字列として取得: プログラマーの雑記帳 michael kors canada http://www.michaelkorscanada.cc
Posted by michael kors canada at 2013年06月09日 02:41
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/43098397

この記事へのトラックバック