改bug制造bug...

故事背景,我看打印输出有报错,于是加了一个容错。然后出现bug了,一个副本的机器人没了。反思问题所在,当我们去改别人的任何代码,都可能会出现bug,因为确实不知道别人的设计。

引出了另外一个奇怪的问题,就是他的代码在别人的电脑或其他环境是不会报错的。我当然是看到报错才去修改的,这代码在我这里确实报错了。代码如下

这个是我加的 if(not mbr)then return end

函数被return了,出现bug。

outlook = mbr and mbr.outlook,

这个确实是处理了容错,即使上面空也不会报错,我做过实验。。。

能正常运行。。。

bug肯定是我改出来的了,我们应该怎么避免这种情况。

我们容错应该是要兼容以前的流程,既然以前是不return的,那么是否应该报空给默认值会更好?

if(not mbr)then return end

改成

if(not mbr)then mbr={} end

怎么说呢,这样改并不能完全避免产生新的bug,比如本来别人只是报错了,属于正常报错。

加了默认值然后继续运行,下面可能扣钱或者加钱,那么就出现新的bug...

这个最稳只有去搞清楚这个函数是哪个功能,然后相关功能都测试一遍了。。。。

相关推荐
ALGO阿狗5 天前
SimpleDateFormat(“YYYY-MM-dd“)格式化时间出现了bug?
bug
爱学习的小可爱卢7 天前
JavaSE基础-Java异常体系:Bug定位终极指南
java·bug·javase
GeekyGuru7 天前
代码诊疗室——疑难Bug破解战
bug
嵌入式×边缘AI:打怪升级日志9 天前
9.2.3 UART 驱动严重 Bug(保姆级讲解)
bug
qq_242188633211 天前
代码诊疗室——疑难Bug破解战
bug
Moshow郑锴13 天前
Java SpringBoot 疑难 Bug 排查思路解析:从“语法正确”到“行为相符”
java·spring boot·bug
人间花海14 天前
BUG终结者:挑战你的调试极限
bug
2401_8582861114 天前
OS54.【Linux】System V 共享内存(3) “共享内存+管道“修bug记录
linux·运维·服务器·算法·bug
Kurbaneli15 天前
代码诊疗室——疑难Bug破解战
bug
Mr -老鬼17 天前
从 0 到 1 落地:Rust + Salvo 实现用户系统与 Bug 管理系统
开发语言·rust·bug