Получать stack наметило в Java, не печатая этого

Как я могу получать stack наметьте в положении кода, когда не произвелось исключение?

Я использую

try
{
  // código
}
catch (IOException e)
{
  e.printStackTrace();
}

или даже

e.getMessage()

внутри исключения, но он интересует меня знать, есть ли какой-то способ получать stack наметило в специфической части кода, чтобы мочь изменять это как текст, без того, чтобы произвелось исключение. Например, чтобы показывать только настоящий метод и линию. Существует какой-то метод, который возвращал бы это мне?

3
задан 06.01.2017, 05:19
0 ответов

Ты можешь выполнять Thread.currentThread().getStackTrace(), то, что возвратит тебе договоренность StackTraceElements, который ты можешь читать и манипулировать, как ты желал.

Пример:

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (StackTraceElement ste : stackTraceElements) {
    System.out.printf("%s.%s(%s:%s)%n",
            ste.getClassName(),
            ste.getMethodName(),
            ste.getFileName(),
            ste.getLineNumber());
}

Demo

4
ответ дан 03.12.2019, 17:51
  • 1
    Превосходный, mé у всех StackTraceElement есть все то, что он искал... пытаясь –  06.01.2017, 05:35
  • 2
    Точно то, что он искал –  06.01.2017, 05:52

Теги

Похожие вопросы