Thrown when an application tries to load in a class through its string name using: The forName method in class Class. The findSystemClass method in class ClassLoader. The loadClass method in class ClassLoader. but no definition for the class with the specified name could be found.
找不到.class文件
NoClassDefFoundError
1 2 3
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found. The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.
// 异常信息不直观 Exception in thread "main" java.lang.NullPointerException at java.io.FileInputStream.<init>(FileInputStream.java:130) at java.io.FileInputStream.<init>(FileInputStream.java:93) at me.zhongmingmao.Main.readFile(Main.java:14) at me.zhongmingmao.Main.main(Main.java:9)
// 使用Throw early,异常信息比较直观 Exception in thread "main" java.lang.NullPointerException at java.util.Objects.requireNonNull(Objects.java:203) at me.zhongmingmao.Main.readFile(Main.java:14) at me.zhongmingmao.Main.main(Main.java:10)