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)
2011年01月30日
この記事へのコメント
スタックトレースを文字列として取得: プログラマーの雑記帳 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
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/43098397
この記事へのトラックバック