--------------------------------------------------------------------------------------------------
学习: http://www.ibm.com/developerworks/cn/java/j-dclp2.html
--------------------------------------------------------------------------------------------------
要点
1. ClassNotFoundException
出现场合:当应用程序试图通过类的字符串名称,使用以下三种方法装入类,但却找不到指定名称的类定义时抛出该异常。
修复方法:确保类路径正确。
2. NoClassDefFoundError
出现场合:如果 JVM 或 ClassLoader 实例试图装入类定义(作为正常的方法调用的一部分,或者作为使用 new 表达式创建新实例的一部分),但却没有找到类定义时抛出该异常。
修复方法:确保类存在。
3. ClassCastException
出现场合:该异常的抛出,表明代码企图把对象的类型转换成一个子类,而该对象并不是这个子类的实例。
修复方法:仔细检查对象要转换到的类型是否符合以下规则:
4. UnsatisfiedLinkError
出现场合:对于声明为 native 的方法,如果 Java 虚拟机找不到和它对应的本机语言定义,就会抛出该异常。
修复方法:把库放在合适位置:
5. ClassCircularityError
出现场合:类或接口由于是自己的超类或超接口而不能被装入。
修复方法:避免循环的类层次结构。
6. ClassFormatError
出现场合:负责指定所请求的编译类或接口的二进制数据形式有误。
修复方法:获得字节码的正确副本,可能需要重新进行编译。
7. ExceptionInInitializerError
出现场合:
修复方法:检查造成 ExceptionInInitializerError 的异常(在堆栈跟踪的 Caused by: 下显示)并寻找阻止抛出这个异常的方式。