EasyExcel 踩坑日记

EasyExcel 踩坑日记

起因

这两天研发需求遇到比较有意思的问题,起因是因为我用Ai软件自动生成了代码,AI自动把类的一些字段识别成了然后本来该是 String 类型的字段变成了Integer 类型。

现象

这个问题导致了excel导入时转换失败,但是转换失败并不是什么问题,这个情况导致发生的异常是静默的,并没有产生堆栈打印或者抛出异常;因为没有异常抛出,导致排查变的异常的艰难。

排查结论

最终通过看源码的方式和打断点的方式排查到了是调用invoke方法事抛出了异常,而它抛出的异常被onException 接受。
而这个方法是属于ReadListener类的方法,但是ReadListener类是一个抽象类,他在我们继承之后只需要默认实现两个方法,而两个中不包含onException;onException在抽象类中被默认实现了,实现的内容是什么都不处理,导致异常被捕获了但是不会抛出异常,也不会打印堆栈。

    default void onException(Exception exception, AnalysisContext context) throws Exception {}

easyExcel 的导入时间还有精读不准的问题,时间可能会往拨动一分钟,原因是他读取excel是使用double类型接收计算的;
而这样换算的时间他会采用去一法计算,所以建议是以double 接入数据之后自行换算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值