查看原文
其他

没想到这么烂的代码居然是我写的……

嵌入式ARM 2021-01-31


最近翻看了很久之前自己开发的几个项目的代码,满满的菜意。哎,真的有掐死自己的想法啊。写的真的太烂了,这里发出来给大家借鉴一下。(C++语言)


▍未做足够的异常检查:




从上段代码可以看到,通篇没有做任何异常检查。这段代码主要存在这么两个问题:

1、split方法是我自己写的,有可能抛出异常,导致返回的split_vec的结果可能并不是自己意料中的。
然而,代码既然没有对split_vec做判断直接拿过来就开始取下标,而且统统未做越界检查。

2、atof(split_vec[5].substr(0,split_vec[5].find(")"))这一行,存在两个可能的异常未做检查,第一个就是split_vec[5]未做越界检查,这里推荐用at()方法访问vector元素,因为at是可以抛出异常的。
第二个,就是未检查find(")")是否有找到“)”。


理解不够透彻:



上面这段就是实现字符串分割的方法,哎!真不知道当时自己怎么想的。虽然功能能实现(有点小bug),在循环中反复的判断(index>0),不仅代码冗长而且效率也低。这就是对代码运行流程和函数使用方法等理解不够透彻造成的。

正解:




-END-




推荐阅读



【01】2019年C++有哪些发展?【02】C++究竟还有没有未来?【03】C/C++的三种函数传值方式及其区别【04】C++编程中的核心知识点【05】学C++人人都会犯的错误,你犯了吗?


免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存