为什么threaddeath类不被称为threaddeatherror呢?

qybjjes1  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(420)

java中几乎所有的error子类的名称中都包含“-error”后缀,但threaddeath没有。为什么会这样?这使得很难记住它是error还是exception的子类。

htzpubme

htzpubme1#

Java文档 ThreadDeath 请这样说:
只有在异步终止后必须清理时,应用程序才应该捕获此类的示例。如果 ThreadDeath 如果被某个方法捕获,则必须将其重新捕获,以便线程实际死亡。

班级 ThreadDeath 是的一个子类 Error 而不是 Exception ,即使这是“正常情况”,因为许多应用程序都会捕获 Exception 然后丢弃异常。
它的意思是应用程序应该 ThreadDeath 两者都不一样 Exception 和(其他) Error 班级。
由于应该以不同的方式处理异常,因此使用不符合正常模式的类名是有意义的。
然而,无论如何,这应该是具有历史意义的。这个 Thread.stop() 抛出这个的方法在20多年前就被弃用了。你的代码不应该使用 stop() ,因此不必关心这个例外。你也不应该。

相关问题