ThreadDeath

  • ThreadDeath is an Error thrown when the deprecated Thread.stop() method is invoked.

  • Applications should only catch ThreadDeath for cleanup purposes and must re-throw it to ensure thread termination.

  • If ThreadDeath is uncaught, the top-level error handler will not print a message.

  • ThreadDeath is a subclass of Error, not Exception, to prevent it from being unintentionally discarded by applications catching all exceptions.

public class ThreadDeath extends Error

An instance of ThreadDeath is thrown in the victim thread when the (deprecated) Thread.stop() method is invoked.

An application should catch instances of this class only if it must clean up after being terminated asynchronously. If ThreadDeath is caught by a method, it is important that it be rethrown so that the thread actually dies.

The {@linkplain ThreadGroup#uncaughtException top-level error handler} does not print out a message if ThreadDeath is never caught.

The class ThreadDeath is specifically a subclass of Error rather than Exception, even though it is a "normal occurrence", because many applications catch all occurrences of Exception and then discard the exception.

Public Constructor Summary

Inherited Method Summary

Public Constructors

public ThreadDeath ()