-
JAVA doc中描述Class.forName(String className)方法在调用时,除了最常出现的ClassNotFoundException,还有两个错误:
@exception LinkageError if the linkage fails @exception ExceptionInInitializerError if the initialization provoked by this method fails
-
看到LinkageError这个错误非常陌生,似乎没见过,查看doc,这个错误描述的是在编译后所引用的类发生了改变。
Subclasses of LinkageError indicate that a class has some dependency on another class; however, the latter class has incompatibly changed after the compilation of the former class.
这应该是JVM在类加载过程之中解析阶段所抛出的错误
-
查看它的部分子类:
LinkageError ----IncompatibleClassChangeError --------AbstractMethodError --------IllegalAccessError --------InstantiationError --------NoSuchFieldError --------NoSuchMethodError
这些子类看起来都比较眼熟,好像在jar包冲突的时候有见过类似的,翻看一下,它们都有对应的Exception类,那么这两者之间有什么区别和联系呢?
在网上没有搜索到有关答案,就暂且认为反射在加载类时抛出Error;在通过反射访问类相关信息时抛出的是Exception,鼓励用户处理这些异常。 所以,把LinkageError视作类加载的解析阶段出现异常
LinkageError
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...