import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.lang.exception.NestableException;
public class MainClass {
public static void main(String[] args) {
try {
a();
} catch (Exception e) {
System.out.println(
"Number of Throwable objects in the exception chain is: " +
ExceptionUtils.getThrowableCount(e));
e.printStackTrace();
}
}
public static void a() throws Exception {
try {
b();
} catch (Exception e) {
throw new ApplicationException("Packaged into Nestable", e);
}
}
public static void b() throws Exception {
throw new Exception("The Root Exception");
}
}
class ApplicationException extends NestableException {
public ApplicationException(String msg, Throwable cause) {
super(msg, cause);
}
}