Java отправляет трассировку стека в другой выходной поток

Мне нужно регистрировать трассировку стека, когда я перехватываю исключение в моем приложении Java. Я знаю, что исключения имеют встроенный метод printStackTrace () , который может отправлять трассировку стека в другой PrintWriter / PrintStream, но было бы полезно, если бы я мог получить трассировку стека как строку, чтобы что я могу манипулировать им или отображать его в JMessagePane или что-то в этом роде. В настоящее время единственный способ сделать это:

String stackTrace = "";
stackTrace += e.getClass().getName() + ": " + e.getMessage() + "\n";

for (StackTraceElement elt : e.getStackTrace()) {
    stackTrace += "\tat " + elt + "\n";
}

Есть ли более чистый способ сделать это?

10
задан ewok 22 February 2012 в 22:25
поделиться