前几天入职了一家小公司实习,最近负责修复一个水印失效BUG,看了一圈后端,刚开始没发现什么问题,感到奇怪,怎么水印设置不生效呢,结果经过一行一行debug,终于让我找到了罪魁祸首-前端传递过来的参数和后端代码对不上:
前端传递过来的缩放比例只有一个参数,而后端进行水印处理的逻辑却使用到了横向比例和纵向比例两个参数,而这个配置通过json转字符串的形式存在了数据库中,前端保存配置的时候并不会报错,所以当后端业务逻辑到数据库取出数据的时候,没有进行过多的校验,直接将string转为float来使用,结果没有这个值,报错了,如果这样子还能及时发现,没想到这个报错被外面的一层try-catch捕获了,而且没做好日志记录,只是简单打印了水印失效。
所以说,前后端传输的数据一定要保持一致,最好是有VO,并且使用JS来确保参数对得上。还有就是后端在使用数据时要做好空值校验并处理好报错日志的输出,这样才能快速定位问题所在。