那两个有什么区别吗?

最佳答案

异常是程序逻辑中的错误。 JVM使用错误来表示环境出了问题,例如OutOfMemoryError或IncompatibleClassChangeError。 ThreadDeath用于杀死线程。 Throwable是所有这些的超类。

在常规程序逻辑中,永远不要抛出或捕获Throwables或Errors。我能想到的捕获错误的主要原因是:您正在使用自己的类加载系统,并且想要隔离损坏的插件。

以ThreadDeath的JavaDoc为例:

应用程序只有在异步终止后必须清除的情况下,才应捕获此类的实例。如果ThreadDeath被某个方法捕获,则将其重新抛出以使线程实际死亡很重要。

07-24 20:53