32 * <p>An application should catch instances of this class only if it 33 * must clean up after being terminated asynchronously. If 34 * {@code ThreadDeath} is caught by a method, it is important that it 35 * be rethrown so that the thread actually dies. 36 * 37 * <p>The {@linkplain ThreadGroup#uncaughtException top-level error 38 * handler} does not print out a message if {@code ThreadDeath} is 39 * never caught. 40 * 41 * <p>The class {@code ThreadDeath} is specifically a subclass of 42 * {@code Error} rather than {@code Exception}, even though it is a 43 * "normal occurrence", because many applications catch all 44 * occurrences of {@code Exception} and then discard the exception. 45 * 46 * @since 1.0 47 */ 48 49 public class ThreadDeath extends Error { 50 @java.io.Serial 51 private static final long serialVersionUID = -4417128565033088268L; 52 } | 32 * <p>An application should catch instances of this class only if it 33 * must clean up after being terminated asynchronously. If 34 * {@code ThreadDeath} is caught by a method, it is important that it 35 * be rethrown so that the thread actually dies. 36 * 37 * <p>The {@linkplain ThreadGroup#uncaughtException top-level error 38 * handler} does not print out a message if {@code ThreadDeath} is 39 * never caught. 40 * 41 * <p>The class {@code ThreadDeath} is specifically a subclass of 42 * {@code Error} rather than {@code Exception}, even though it is a 43 * "normal occurrence", because many applications catch all 44 * occurrences of {@code Exception} and then discard the exception. 45 * 46 * @since 1.0 47 */ 48 49 public class ThreadDeath extends Error { 50 @java.io.Serial 51 private static final long serialVersionUID = -4417128565033088268L; 52 53 /** 54 * Constructs a {@code ThreadDeath}. 55 */ 56 public ThreadDeath() {} 57 } |