Q
[alibaba/easyexcel]重写了AnalysisEventListener的onException方法后,没抛出异常,但是碰到格式转化异常之后,程序还是直接停止运行了
8
重写了AnalysisEventListener的onException方法后,没抛出异常,但是碰到格式转化异常之后,程序还是直接停止运行了;
A
回答
7
我想要的效果是遇到异常之后继续读取下一行,下面是我的代码
/**
- 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。
-
- @param exception
- @param context
- @throws Exception
*/
@Override
public void onException(Exception exception, AnalysisContext context) {
LOGGER.error("解析失败,但是继续解析下一行:{}", exception.getMessage());
// 如果是某一个单元格的转换异常 能获取到具体行号
// 如果要获取头的信息 配合invokeHeadMap使用
if (exception instanceof ExcelDataConvertException) {
ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
LOGGER.error("第{}行,第{}列解析异常", excelDataConvertException.getRowIndex(),
excelDataConvertException.getColumnIndex());
}
}
下面是我的运行结果
3
可以看到此处我的程序直接停止运行了,我看了demo说的是支持继续读取下一行的,我的版本是2.2.10
5
可以看到此处我的程序直接停止运行了,我看了demo说的是支持继续读取下一行的,我的版本是2.2.10
你应该使用的是readSync方法,使用同步的这种方式,其内部自定义了一个listener,默认是抛出异常的
6
数据量大的情况下是推荐用doRead方法吗?确实,使用doReadSync方法会抛出异常
4
请问,使用readSync方法的异常可以重写或者如何实现不中断呢?