代码之家  ›  专栏  ›  技术社区  ›  Tahir Akhtar

NoClassDefFoundError和ClassNotFoundException之间的区别?

  •  6
  • Tahir Akhtar  · 技术社区  · 15 年前

    错误类状态的Javadoc:

    Error 是的一个子类 Throwable 不应该试图抓住。

    类加载方法,如 Class.forName() 仅声明 ClassNotFoundException in子句。除了上述描述 意味着我们通常不应该 NoClassDefFoundError 等。

    NoClassDefFoundError错误 ClassNotFoundException类 ?

    2 回复  |  直到 15 年前
        1
  •  12
  •   Jon Skeet    15 年前

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

    NoClassDefFoundError 当类文件本身引用了一个无法找到的类时将发生。班级 有时会出现,但现在不是——这不仅仅是试图进行反射的代码中的一个bug,它是一个部署错误,没有使所有必需的类都可用。据我所知 通常或可能总是 ClassNotFoundException类 -但关键是这不是什么

    至少,这是我的理解:)

        2
  •  0
  •   Nagappa L M    11 年前

    运行时发生NoClassDefFoundError,因为编译器无法找到.class文件。