gpt4 book ai didi

java - NoClassDefFoundError 和 ClassNotFoundException 之间的区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:18 24 4
gpt4 key购买 nike

NoClassDefFoundError 扩展了 LinkageError,后者又扩展了 Error。

错误类状态的 Javadoc:

An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.

Class.forName() 等类加载方法仅在 throws 子句中声明了 ClassNotFoundException。其中,除了上面对 Error 的描述之外,我们通常不应该在使用 Class.forName() 等加载类时捕获 NoClassDefFoundError 等.

我的问题是在什么情况下会抛出 NoClassDefFoundError 而不是 ClassNotFoundException

最佳答案

ClassNotFoundException 在您手动加载类的情况下更有可能被抛出(对 您的 代码)- 正是对于 Class.forName( )。例如,这些名称可能来自用户输入。

NoClassDefFoundError 当一个类文件本身引用了一个随后找不到的类时,将发生。类曾经 曾经存在,但现在不存在——这不仅仅是试图进行反射的代码中的错误,这是一个部署错误,没有使所有必需的类都可用。据我所知,NoClassDefFoundError 通常或可能总是包装 ClassNotFoundException - 但重点是这不是什么您的代码旨在防范,因为它表明一个环境可能已经损坏到无法从中恢复。

至少,这是我的理解:)

关于java - NoClassDefFoundError 和 ClassNotFoundException 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3254751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com