easyexcel
easyexcel copied to clipboard
使用doReadAllSync读取Excel无法忽略异常
触发场景描述
使用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个
- ModelListener
- MyListener
- SyncReadListener 错误在1和2的时候被忽略,但是在SyncReadListener中没有被忽略