Class ExitOnErrorThreadGroup

  • All Implemented Interfaces:
    java.lang.Thread.UncaughtExceptionHandler

    public class ExitOnErrorThreadGroup
    extends java.lang.ThreadGroup
    A class that subclasses the ThreadGroup class. This class is used by ChildMain.main(String[]) to run the target application. By using this class, any Error other than ThreadDeath thrown by threads created by the target application will be caught the process terminated. By default, the JVM will only print a stack trace of the Error and destroy the thread. However, when an uncaught Error occurs, it normally means that the JVM has encountered a severe problem. Hence, an orderly shutdown is a reasonable approach.

    Note: not all threads created by the target application are guaranteed to use this class. Target application's may bypass this class by creating a thread using the Thread(ThreadGroup, String) or other similar constructors.

    Author:
    Patrick Luby
    • Constructor Summary

      Constructors 
      Constructor Description
      ExitOnErrorThreadGroup​(java.lang.String name)
      Constructs a new thread group.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void uncaughtException​(java.lang.Thread t, java.lang.Throwable e)
      Trap any uncaught Error other than ThreadDeath and exit.
      • Methods inherited from class java.lang.ThreadGroup

        activeCount, activeGroupCount, allowThreadSuspension, checkAccess, destroy, enumerate, enumerate, enumerate, enumerate, getMaxPriority, getName, getParent, interrupt, isDaemon, isDestroyed, list, parentOf, resume, setDaemon, setMaxPriority, stop, suspend, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ExitOnErrorThreadGroup

        public ExitOnErrorThreadGroup​(java.lang.String name)
        Constructs a new thread group. The parent of this new group is the thread group of the currently running thread.
        Parameters:
        name - the name of the new thread group
    • Method Detail

      • uncaughtException

        public void uncaughtException​(java.lang.Thread t,
                                      java.lang.Throwable e)
        Trap any uncaught Error other than ThreadDeath and exit.
        Specified by:
        uncaughtException in interface java.lang.Thread.UncaughtExceptionHandler
        Overrides:
        uncaughtException in class java.lang.ThreadGroup
        Parameters:
        t - the thread that is about to exit
        e - the uncaught exception