code: @Override
    public void handle(Throwable throwable, Map<String, Object> parameters) {
  	if (handlers.size() == 0) {
  	  register(Exception.class, new HandlerException() {
  		@Override
  		public void handle(Throwable throwable,
  						   Map<String, Object> parameters) {
  		  throwable.printStackTrace();
  		}
  	  });
  	}
  
  	if (throwable != null) {
  	  Class<?> throwableClass = throwable.getClass();
  	  while (throwableClass != null) {
  		if (handlers.containsKey(throwableClass.getName())) {
  		  HandlerException handler = handlers.get(throwableClass.getName());
  		  if (parameters == null) {
  			parameters = new HashMap<String, Object>();
  		  }
  		  handler.handle(throwable, parameters);
  		  return;
  		} else {
  		  throwableClass = throwableClass.getSuperclass();
  		}
  	  }
  	}
    }
docs: {@inheritDoc}