当前位置:C++技术网 > 资讯 > 这不是一个诡异的错误,出现此错误说明你的代码写错了

这不是一个诡异的错误,出现此错误说明你的代码写错了

更新时间:2017-10-28 11:43:19浏览次数:1+次

    我在写后台接口,然后会操作数据表。一个数据表对应了几个接口,而这几个接口都会用到数据表的字段列表。为了简化代码,我就将这个字段列表放在了全局,当然是本代码文件的全局。后面直接使用全局变量即可。
    但是在添加统计数据接口时,使用的是新的字段列表。但是由于疏忽,就没有单独指定,就默认使用了全局的数据表字段列表变量。
    这下好了,本来是为了省事,反而变得容易出Bug了。
    为了规避这个问题,我得采取一定的措施。因为这个问题已经不止出现一次了。既然是提高代码效率,自然也得降低代码出错的几率。所以需要加一定的防护或者错误提醒机制。
    而这个问题出错是因为字段列表长度不一致造成的。所以在内部函数就会对字段列表长度进行检测,如果不一致,就进行错误提示。代码上其他都没有问题,毕竟都是一样的模式,都是直接拷贝的,代码错误也就错在了字段列表上。那么给予一个直观的错误提示,会让定位错误更快。

        所以在检测了错误后,返回一个正常的结果。只不过在返回的结果里附带了错误描述,如下图所示:

    这不是一个诡异的错误,出现此错误说明你的代码写错了

    错误提示是code error.please fix the code.意思是代码错误,请修复代码。返回的数据格式并不是常规的数据错误的错误提示,这个错误提示会导致后续的数据解析报错。这是故意这样设计的。本来就是代码错误了,就是要让后续的流程报错崩溃。然后就会去分析错误原因,然后发现这句错误提示。然后就知道是自己的锅了,就会乖乖修复代码错误了。
    不过这个错误只是说明了代码错误,而不是数据错误。究竟错在哪里,不知道!既然都做了人性化的处理,肯定要做彻底点。改错误提示内容吧,让错误更加准确。
    下面是新的错误提示:
This is not a weird mistake, and this error shows that your code is wrong. The length of the list of fields you gave is inconsistent with the field list of the actual data.
    意思是:这不是一个诡异的错误,出现此错误说明你的代码写错了。你给的列表长度和实际数据的字段列表长度不一致。
    看看这个错误提示,是不是很人性化了。当然一开始是用的英文错误提示,可以在接口返回结果里直接看到。但是想想,很多程序员英语水平还是很一般,这样的英文提示可能会造成心理恐慌。
    既然如此,那就继续改进。把这个错误提示换成了下面的中文提示。不过这个中文提示在接口返回的数据里不能直观看到,需要使用浏览器的调试功能查看到中文。使用方法就是,按F12,进入网络(Network)标签,然后再刷新接口,就可以看到被执行的接口,再点击预览(Preview),就可以展开结果看到中文了。如下图所示:
    这不是一个诡异的错误,出现此错误说明你的代码写错了
    其实吧,提高代码效率,规避代码错误,提供代码方便的排查机制,看起来很简单,好像不必要,但是就是这样一些小改动,会让代码开发更加轻松有趣。至少不会自己坑自己吧。
    发动一切智慧,改进代码,会让编程开发越来越有趣的哦。