Stack trace is a collection of methods and objects that lists from the origin of the exception to the point where the nested call begins.
class StackTrace{ StackTrace() { divideByzero(); } int divideByzero() { return 100/0; } static void main(String[]arr) { StackTrace s=new StackTrace(); }}
When the above code is executed, the output you get on the screen might look like this:
Exception in thread "main" java.lang.ArithmeticException: / by zero at StackTrace.divideByzero(StackTrace.java:10) at StackTrace.(StackTrace.java:6) at StackTrace.main(StackTrace.java:14)
From the above code, you can see the line of execution of the program. It has to read from the bottom:
1. The main method is called.
2. The constructor (init) is called.
3. The method with the Exception is called.
This how an exception is propagated through the code.