在Error下使用ThreadDeath

jay*_*mar 1 java error-handling multithreading

在Error下的ThreadDeath的目的是什么?

Mar*_*gus 7

调用类Thread中具有零参数的stop方法时,在受害者线程中抛出ThreadDeath的实例.

只有在异步终止后必须清理的情况下,应用程序才应捕获此类的实例.如果ThreadDeath被一个方法捕获,重要的是它被重新抛出,以便线程实际死掉.

如果从未捕获ThreadDeath,则顶级错误处理程序不会打印出消息.

ThreadDeath类特别是Error而不是Exception的子类,即使它是"正常发生",因为许多应用程序捕获所有出现的Exception,然后丢弃该异常.

自:JDK1.0

来源:Java API
示例:链接