NoClassDeFoundError与ClassNotFoundException二者的区别
下文笔者讲述NoClassDeFoundError与ClassNotFoundException的功能简介说明,如下所示
NoClassDeFoundError和ClassNotFoundException区别
1.一个继承自Exception,另一个继承自Error。
2.NoClassDeFoundError
NoClassDeFoundError继承自LinkageError
NoClassDeFoundError是由于类加载过程中连接时错误
例:
类abc extends ABC
由于Windows中文件名不区分大小写
所以编译时,先编译父类生成ABC.class
然后编译子类abc.class
此时由于不区分大小写,
abc.class直接覆盖掉了ABC.class的内容了
当在解析时,就找不到ABC这个类啦
此时就报 NoClassDeFoundError
ClassNotFoundException
如JDBC的时候忘了添加驱动,则会报类找不到的错误信息
public static void main(String[] args) throws ClassNotFoundException {
Class.forName("com.mysql.jdbc.driver");
}
通过以上的分析,我们可以得知两者的区别
NoClassDeFoundError:继承自Error属于用户程序无法捕获处理的异常 ClassNotFoundException:继承自Exception属于用户程序能捕获处理的异常 NoClassDeFoundError:发生在类生命周期中解析阶段找不到相应的类 ClassNotFoundException:发生在类生命周期的加载阶段,找不到相应的类
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


