标签:程序员 pre 执行 graph 全面 现在 举例 需求 一段
Bug的产生,通常分为三种类型:逻辑漏洞、越界访问、条件考虑不全面。
为了便于你理解,我以女朋友来大姨妈举例。
某日,你收到了女朋友的一条微信,跟你说自己来大姨妈,肚子疼。这时,你要写一段文字回复,这段回复你就可以认为是你写的一段代码。
这段代码需要达到的目的是让你的女朋友感受到你对她的爱,增进(至少不减少)你俩之间的感情。我们可以把这个目的当成你对自己提出的这段代码背后的产品需求。
1,逻辑漏洞:
你:我叫外卖来给你买个热饮吧。
女朋友:滚!你是想让我从床上趴下去给外卖小哥开门么?
分析:低级错误,程序执行后无法达到想要效果。
2,越界型:
你:我给你室友打个电话,让她帮忙照顾下你。
女朋友:滚,谁让你联系我室友的。
分析:访问了非法区域,造成程序崩溃。
3,条件考虑不全面:
你:亲爱的,我早就知道有这天,所以暖宝宝、热水壶、痛经药....(此处省略一万字),我都给你准备好了,就在家里。
女朋友:我现在在地铁站。
分析:你以为你万无一失,但你永远都不知道输入参数究竟是什么!
除了上面三种主流错误,还有一大堆,这里就不细说。
我跟其他答主不一样的是,我不光要告诉你们Bug是如何产生的,我还要跟大家解释我们程序员平常如何防范未知Bug,因为你们也看到了,Bug就像你女朋友的微信,你永远不知道她下一句攻击你哪个点。
所以,这里要祭出利器:异常捕获。
异常捕获一般依靠try,catch语句。很好理解:try(尝试)一下,如果有问题,直接捕获(catch)住,防止程序崩溃。
什么,你没听懂?我这么写你可能就懂了:
女朋友:我来大姨妈了,好难受。 try { 你:xxx。 } catch(Exception e) { 你:对不起,我触发了“e”,都是我不对,你现在选个包包,我去给你买。 } 女朋友:爱你!
转自(知乎)
标签:程序员 pre 执行 graph 全面 现在 举例 需求 一段
原文地址:https://www.cnblogs.com/pogeba/p/12178037.html