2013-11-27 2 views
1

Throwable имеет способ printStackTrace(), который печатает красиво сформированную трассировку стека. Есть ли какая-то функция, которая делает то же самое для массива StackTraceElement, который можно получить, например, путем вызова getAllStackTraces()?Есть ли у StackTraceElement [] эквивалент Throwable.printStackTrace()?

public static Map<Thread, StackTraceElement[]> getAllStackTraces() 

ответ

2

Пункт моего вопроса: есть ли что-то уже существующее.

AFAIK, no. Конечно, в стандартных библиотеках Java SE нет ничего, что можно было бы сделать.

(Это легко проверить. Перейти на странице JavaDoc для StackTraceElement и посмотреть на «использует» перекрестную ссылку. Если есть какие-либо общие методы для рендеринга элементов массивов стеки, они должны показать там.)

1

Заканчивать метода ToString() из StackTraceElement, он печатает точно так же, как это делает printStackTrace. Вам просто нужно конкатенировать сгенерированные строки (элемент foreach вашего массива).

+0

getAllStackTraces - это функция, она не имеет метода toString. Функция toString возвращенных картографических отпечатков не выглядит вообще как printStackTrace: «{Thread [Reference Handler, 10, system] = [Ljava.lang.StackTraceElement; @ b8aff, Thread [Signal Dispatcher, ...» –

+0

Извините, что я подразумевал метод toString() StackTraceElement, конечно ... –

+0

Ну да, он возвращает один элемент трассировки стека. Я могу (и иметь) вручную построить String из них. Пункт моего вопроса: есть ли что-то уже существующее. –

Смежные вопросы