1 import sun.misc.ThrowableTraceListener;
   2 
   3 
   4 public class ThrowableTracer implements ThrowableTraceListener {
   5     
   6     int exceptions = 0;
   7     int errors = 0;
   8     
   9     public static void enable(ThrowableTracer t) {
  10         sun.misc.ThrowableTrace.setListener(t);
  11     }
  12 
  13     @Override
  14     public void traceThrowable(Throwable t) {
  15         synchronized (this) {
  16             if (t instanceof Error) {
  17                 errors++;
  18             } else {
  19                 exceptions++;
  20             }
  21         }
  22     }
  23 
  24     public int getExceptions() {
  25         return exceptions;
  26     }
  27 
  28     public int getErrors() {
  29         return errors;
  30     }
  31 }