はじめに
* 例外をログに出力するために、ex.getMessage() だけでは情報が足りない時が多い。 そこで、例外のスタックトレースを文字列にしたい。
サンプル
import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; public class ExceptionHelper { public static void main(String[] args) { try { int a = 1 / 0; } catch (Exception ex) { System.out.println("Exception is " + ExceptionHelper.getStackTrace(ex)); } } public static String getStackTrace(Exception exception) { String returnValue = ""; try (StringWriter error = new StringWriter()) { exception.printStackTrace(new PrintWriter(error)); returnValue = error.toString(); } catch (IOException ex) { ex.printStackTrace(); } return returnValue; } }
出力結果
Exception is java.lang.ArithmeticException: / by zero at com.ant.sample.ExceptionHelper.main(ExceptionHelper.java:11)