Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:
null
. null
. null
, как если бы это был массив. null
, как если бы это был массив. null
как будто это было значение Throwable. Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null
.
Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html
Если Вы используете log4j
Exception e = new Exception();
log.error("error here", e);
распечатает stacktrace к Вашему журналу.
Если Вы хотите сохранить отслеживание стека в Строку, можно сделать это;
String exception = "";
for (StackTraceElement element : e.getStackTrace())
exception += element.toString() + "\n";
Где e является, очевидно, исключением.
Кроме того, звучит очень странным автоматически сгенерировать собственное Исключение только для нахождения, получают отслеживание стека для отладки. Получите Eclipse и использование, это - режим отладки, это является действительно потрясающим.
А также что сказанный @jjnguy, если у Вас нет исключения, можно также назвать Thread.getStackTrace ().
Просто создание произвольного исключения добивается цели для меня:
System.out.println("Oops, the bad thing happened");
new IllegalStateException().printStackTrace();
Необходимо ловить исключение в блоке try-catch.
e.getStackTrace();
Это возвращает StackTraceElement [], что можно затем интерпретировать.
Также:
e.printStackTrace()
... распечатает stacktrace.
Просто потому, что мне самому это было нужно:
На основе ответа Как мне найти вызывающего метода с помощью трассировки стека или отражения? , вы можете получить стек вызовов, используя
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace()
Затем вы обрабатываете и распечатываете / регистрируете все, что вам интересно.