LinkageError

  • 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的原因

  • 二进制兼容性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,302评论 19 139
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 6,377评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,805评论 18 399
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,922评论 0 9
  • 生而不能触碰雨,如今却为你在雨中求情。我陆寒烟不曾爱过任何人,可你却偏偏是我心中最无法忘怀的地方。宁王,十七岁时你...
    a5a1664150d9阅读 1,621评论 0 0

友情链接更多精彩内容