Как в Java конвертировать stack trace в строку
Чтобы превратить stack trace в строку и затем, например, вывести эту строку в лог (как правило что-то подобное происходит в блоке catch в каком-то фрагменте веб-приложения), необходимо воспользоваться промежуточным звеном.
В качестве такого звена подойдут объекты классов StringWriter и PrintWriter.
Метод printStackTrace класса Throwable перегружен таким образом, чтобы принимать в качестве аргумента объект класса PrintWriter, который в свою очередь принимает объект StringWriter в конструктор. Метод printStackTrace запишет туда трейс исключительной ситуации. Затем уже из объекта StringWriter легко извлекается строка с трейсом:
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String stackTraceAsString = sw.toString();
System.out.println(stackTraceAsString);