@FunctionalInterface public static interface Thread.UncaughtExceptionHandler
When a thread is about to terminate due to an uncaught exception
the Java Virtual Machine will query the thread for its
Thread.getUncaughtExceptionHandler() and will invoke the handler's
uncaughtException method, passing the thread and the
exception as arguments.
If a thread has not had its UncaughtExceptionHandler
explicitly set, then its ThreadGroup object acts as its
UncaughtExceptionHandler. If the ThreadGroup object
special requirements for dealing with the exception, it can forward
the invocation to the default uncaught exception handler.