NoClassDefFoundError和ClassNotFoundException的区别
1.NoClassDefFoundError是一个错误,而ClassNotFoundException是一个异常(Error一般为系统异常或者jvm异常;Exception一般为逻辑上可以避免或逻辑上不能避免但是jvm可以检测到的异常。)
2.NoClassDefFoundError是指jvm加载类的时候某个类没有找到导致的错误。一般是ClassLoader尝试加载类(例如引用或者new对象时),找不到这个类的定义,此时会造成这个错误。当部署项目时候,jar包或定义的类丢失会导致该问题。
3.ClassNotFoundException是指编译时没有发现问题,但是在项目运行时或调用方法的时候报错。例如:Class c = Class.forName("com.xxry.TestClass").此时可以编译通过,但是运行该代码是,如果没有找到com.xxry.TestClass类时就会出现该异常。
注:Exception包括RuntimeException(运行时异常)和CheckedException(检查异常) 常见种类

浙公网安备 33010602011771号