天天看点

ClassNotFoundException And NoClassDefFoundError

ClassNotFoundException直接继承与Exception,它是一个checked 的异常。

NoClassDefFoundErr 继承自Error->LinkageError ,它是一个unchecked 的异常。

当我们在运行期间通过Class.forName() or ClassLoader.loadClass() or ClassLoader.findSystemClass() 等方法动态加载类的时候,在jvm中找不到对应的类,就会抛出 ClassNotFoundException,这个异常可以通过try catch方法捕获。

NoClassDefFoundError 是通过new的形式去生成类实例的,在编译期间是存在的,但是在运行的时候找不到该类就会抛出NoClassDefFoundError。