问题描述
有个导出数据功能,超过500条就自动转为发送邮件给操作人,但是某位操作人操作很多次都无法收到邮件。通过直接调接口测试,发现增加某个条件之后就可以导出,排除账号问题,缓存问题,以及日志当中没有记录报错的问题。找了很久,后来发现,每次导出不发邮件的数据总条数都是1000的整数倍,也是巧了。。。。
后来查看后端日志发现,当总条数为1000的整数倍N的时候,会请求N+1次,导致后端数据返回为null,循环添加列表时,没有捕捉到空指针异常,导致程序终端而没有记录。
解决方式
在计算请求次数时,避免出现整除处理,总数为total,每页请求条数为pageSize,那么计算请求次数n时:
int n =(total + (pageSize-1)) / pageSize
真是个奇奇怪怪可可爱爱的问题吖~