真的是ClassNotFound吗?-Java不同的报错,不同的含义

 
折腾了我一个晚上,原来根本不是我想的那样。用 Class.forName("com.mysql.jdbc.Driver") 来加载 MySql 的驱动。
一直报 ClassNotFoundException 。然后我就一直调整 jar 的路径。结果错误不断。在 Eclipse3.3+JDK1.6 中报错如下:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    Unhandled exception type ClassNotFoundException
大意是未处理的编译期错误:未对异常类型 ClassNotFoundException 进行处理。
实际上是因为 Class.forName() 方法抛出 ClassNotFoundException 异常,必须使用 try 块捕获并处理 ,因此根本不是找不到类的异常报告。这时只要用 try 块把 Class.forName("com.mysql.jdbc.Driver") 包围即可。
真正找不到 Class 的报错应该是:
java.lang.ClassNotFoundException : com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged( Native Method )
    ......
注意,它还指出了哪个类找不到: com.mysql.jdbc.Driver
 

你可能感兴趣的:(Java)