1、NoClassDefFoundError
这是一个Error类。当JVM或ClassLoader实例试图在类的定义中加载,但无法找到该类的定义时抛出此Error。
例如:
public static void main(String[] args) {
new A();
}
class A {
public A() {
new B();
}
}
class B {
public B() {
}
}
如果在运行main方法前,把B.class文件删掉,类A的构造器会抛出NoClassDefFoundError抛出。
2、ClassNotFoundException
这是一个检查型异常,需要显式捕获。
当程序试图通过字符串名加载类时,抛出该异常:
Class 类中的 forName 方法。
ClassLoader 类中的 findSystemClass 方法。
ClassLoader 类中的 loadClass 方法。