Java program on exceptions with printStackTrace() method Example 2
PROGRAM:
package stackTracePackage;
public class StackTraceClass {
public static void main(String[] args) {
System.out.println("In main");
Demo d = new Demo();
try {
d.m1();
} catch (Exception e) {
System.out.println("Exception caught in main");
e.printStackTrace();
}
}
}
class Demo {
void m1() {
System.out.println("In m1");
try {
m2();
} catch (Exception e) {
System.out.println("Exception caught in m1");
throw e;
}
}
void m2() {
System.out.println("In m2");
try {
int a = 5, b = 0, c = a / b;
System.out.println(c);
} catch (Exception e) {
System.out.println("Exception caught in m2");
throw e;
}
}
}
public class StackTraceClass {
public static void main(String[] args) {
System.out.println("In main");
Demo d = new Demo();
try {
d.m1();
} catch (Exception e) {
System.out.println("Exception caught in main");
e.printStackTrace();
}
}
}
class Demo {
void m1() {
System.out.println("In m1");
try {
m2();
} catch (Exception e) {
System.out.println("Exception caught in m1");
throw e;
}
}
void m2() {
System.out.println("In m2");
try {
int a = 5, b = 0, c = a / b;
System.out.println(c);
} catch (Exception e) {
System.out.println("Exception caught in m2");
throw e;
}
}
}
OUTPUT:
In mainIn m1
In m2
Exception caught in m2
Exception caught in m1
Exception caught in main
java.lang.ArithmeticException: / by zero
at stackTracePackage.Demo.m2(StackTraceClass.java:31)
at stackTracePackage.Demo.m1(StackTraceClass.java:21)
at stackTracePackage.StackTraceClass.main(StackTraceClass.java:8)