code: public void uncaughtException(Thread thread, Throwable throwable) {
          if (exceptionPurger != null) {
              throwable = exceptionPurger.purge(throwable);
          }
          for (ExceptionHandlerDelegate delegate : delegateList) {
              if (delegate.hasAppropriateHandler(throwable)) {
                  delegate.uncaughtException(thread, throwable);
                  return;
              }
          }
          // A silent exception handler should be configured if it needs to be silent
          logger.error("No exception handler found for throwable", throwable);
      }
docs: Delegates the throwable to the appropriate delegate exception handler.
  @param thread the thread in which the throwable occurred
  @param throwable the thrown throwable