ClassNotFoundException和NoClassDefFoundError的区别
展开全部
ClassNotFoundException和NoClassDefFoundError,这两个看起来都是找不到类导致的异常,但是一个是Exceptioin异常,一个是Error错误,我们对比一下,就能理解Error和Exception的区别了。
ClassNotFoundException,是个Exception异常,一般在反射时遇到,是动态加载时报错的,动态加载是开发者故意设计的业务逻辑,本身就有失败的可能,所以建议捕获。
NoClassDefFoundError,是个Error错误,这个错误发生时,在编译时都没有问题,但是运行时,JVM或者ClassLoader去加载某个类,发现这个类找不到了,就会报这个错误。这一般是运行环境的问题,例如缺少库文件什么的,这个错误与业务逻辑无关,是必须解决掉的错误,否则软件无法继续运行,所以不建议捕获。
ClassNotFoundException,是个Exception异常,一般在反射时遇到,是动态加载时报错的,动态加载是开发者故意设计的业务逻辑,本身就有失败的可能,所以建议捕获。
NoClassDefFoundError,是个Error错误,这个错误发生时,在编译时都没有问题,但是运行时,JVM或者ClassLoader去加载某个类,发现这个类找不到了,就会报这个错误。这一般是运行环境的问题,例如缺少库文件什么的,这个错误与业务逻辑无关,是必须解决掉的错误,否则软件无法继续运行,所以不建议捕获。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询