Programming Tips - Java: Programmatically make a stack trace

Date: 2014oct9 Update: 2025oct6 Language: Java Q. Java: Programmatically make a stack trace A. Here is a function called stacktrace() shown in a full example:
class Demo { public static void stacktrace() { for (final StackTraceElement ste : Thread.currentThread().getStackTrace()) { System.out.println(ste.toString()); } } static boolean somethingIsWrong() { return true; } static void function2() { if (somethingIsWrong()) { stacktrace(); } } static void function1() { function2(); } public static final void main(String []args) { function1(); } }
Output:
java.base/java.lang.Thread.getStackTrace(Thread.java:2451) Demo.stacktrace(stack_trace.java:3) Demo.function2(stack_trace.java:14) Demo.function1(stack_trace.java:19) Demo.main(stack_trace.java:23) java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) java.base/java.lang.reflect.Method.invoke(Method.java:580) jdk.compiler/com.sun.tools.javac.launcher.Main.execute(Main.java:484) jdk.compiler/com.sun.tools.javac.launcher.Main.run(Main.java:208) jdk.compiler/com.sun.tools.javac.launcher.Main.main(Main.java:135)