easyexcel icon indicating copy to clipboard operation
easyexcel copied to clipboard

使用doReadAllSync读取Excel无法忽略异常

Open WingGao opened this issue 1 year ago • 0 comments

触发场景描述

使用doReadAllSync读取Excel无法忽略异常

触发Bug的代码

// read代码
EasyExcel.read(file.inputStream,MyDto::class.java,  MyListener())
            .headRowNumber(2)
            .doReadAllSync<MyDto>()

// MyListener
class MyListener() : AnalysisEventListener<MyDto>() {
    override fun onException(exception: Exception, context: AnalysisContext) {
        // do somthing
    }
}

提示的异常或者没有达到的效果

从代码来说,这里的异常被忽略掉了,应该继续运行,但实际会被后面的SyncReadListener给抛出。

https://github.com/alibaba/easyexcel/blob/ea64d8a4d6d40e58d5603cea284d09e619cb5e04/easyexcel-core/src/main/java/com/alibaba/excel/read/processor/DefaultAnalysisEventProcessor.java#L81

因为使用doReadAllSync时,readListenerList有3个

  1. ModelListener
  2. MyListener
  3. SyncReadListener 错误在1和2的时候被忽略,但是在SyncReadListener中没有被忽略

WingGao avatar Jul 09 '24 09:07 WingGao