Debug - 某个方法一直报NPE错,无论怎么加防御式编程、try catch均无效
问题描述
最初的错误是,在fane-lib-java包里,出现了NPE异常。
我的应用程序,引用了一个fane-lib-java包。lib包中的fane-core 和 fane-data-sdk-plus两个module.
由于在本地windows机器local debug、直接运行、鼠标追踪,均是定位到 fane-core的QuantScenarioDefModel.java,因此我只在fane-core这里修复了NPE。
然而,一旦部署到at、sit 环境的Linux服务器,就会出现NPE异常
报错方法已经按照堆栈提示增加了防御式编程,但无论加上什么log都不会进入该方法。
同时,也确定了服务器上使用的是最新的包了,但依然无解。
解决方法
使用(右键-》Find Usage)查询可疑字段、可疑方法的使用情况,发现 另一个module fane-data-sdk-plus下面存在一个“同包同名”的类。该类尚未更新。
因此推测:
- 在windows系统,由于某些原因,会优先加载 fane-core里面的QuantScenarioDefModel.java类
- 在Linux系统,由于某些原因,会优先加载 fane-data-sdk-plus里面的QuantScenarioDefModel.java类
workaround是:将两个类同时进行修改。
分类:
Debug
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-12-09 Lombok - 常见注解
2020-12-09 传统web项目的架构
2020-12-09 Maven - <packaging>
2020-12-09 Maven - 父模块 vs 子模块 与 <dependencyManagement> vs <dependencies>
2020-12-09 SpringCloud - 什么是SpringCloud?与SpringBoot的区别?
2020-12-09 SpringCloud - 什么是微服务架构? 四大技术点+解决方案
2020-12-09 Dubbo - 什么是Dubbo (RPC框架) + ZooKeeper(注册中心)