通俗的解释Bug

Bug的产生,通常分为三种类型:逻辑漏洞、越界访问、条件考虑不全面。

为了便于你理解,我以女朋友来大姨妈举例。

某日,你收到了女朋友的一条微信,跟你说自己来大姨妈,肚子疼。这时,你要写一段文字回复,这段回复你就可以认为是你写的一段代码。

这段代码需要达到的目的是让你的女朋友感受到你对她的爱,增进(至少不减少)你俩之间的感情。我们可以把这个目的当成你对自己提出的这段代码背后的产品需求。

1,逻辑漏洞:

你:我叫外卖来给你买个热饮吧。

女朋友:滚!你是想让我从床上趴下去给外卖小哥开门么?

分析:低级错误,程序执行后无法达到想要效果。

2,越界型:

你:我给你室友打个电话,让她帮忙照顾下你。

女朋友:滚,谁让你联系我室友的。

分析:访问了非法区域,造成程序崩溃。

3,条件考虑不全面:

你:亲爱的,我早就知道有这天,所以暖宝宝、热水壶、痛经药....(此处省略一万字),我都给你准备好了,就在家里。

女朋友:我现在在地铁站。

分析:你以为你万无一失,但你永远都不知道输入参数究竟是什么!

 

除了上面三种主流错误,还有一大堆,这里就不细说。

我跟其他答主不一样的是,我不光要告诉你们Bug是如何产生的,我还要跟大家解释我们程序员平常如何防范未知Bug,因为你们也看到了,Bug就像你女朋友的微信,你永远不知道她下一句攻击你哪个点。

所以,这里要祭出利器:异常捕获。

异常捕获一般依靠try,catch语句。很好理解:try(尝试)一下,如果有问题,直接捕获(catch)住,防止程序崩溃。

什么,你没听懂?我这么写你可能就懂了:

女朋友:我来大姨妈了,好难受。
try {
你:xxx。
}
catch(Exception e) {
你:对不起,我触发了“e”,都是我不对,你现在选个包包,我去给你买。
}
女朋友:爱你!

转自(知乎)

猜你喜欢

转载自www.cnblogs.com/pogeba/p/12178037.html